diff --git a/Code/NetFramework4_6_2/CSRender.sln b/Code/NetFramework4_6_2/CSRender.sln
new file mode 100644
index 0000000000000000000000000000000000000000..56cbe57316be917e5087f67679b4870ac22bd3f5
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.1684
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSRender", "CSRender\CSRender.csproj", "{FF5750DD-484C-453F-BC0D-C59FE0BBF8BF}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FF5750DD-484C-453F-BC0D-C59FE0BBF8BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FF5750DD-484C-453F-BC0D-C59FE0BBF8BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FF5750DD-484C-453F-BC0D-C59FE0BBF8BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FF5750DD-484C-453F-BC0D-C59FE0BBF8BF}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {55215199-3AE8-470F-BCC4-2ED101ED4367}
+ EndGlobalSection
+EndGlobal
diff --git a/Code/NetFramework4_6_2/CSRender/App.config b/Code/NetFramework4_6_2/CSRender/App.config
new file mode 100644
index 0000000000000000000000000000000000000000..e7fb6360cdac00e5b85d910524bbab110d575362
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/App.config
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 75
+
+
+
+
+
+ 2
+
+
+ 60
+
+
+ 8
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Code/NetFramework4_6_2/CSRender/App.manifest b/Code/NetFramework4_6_2/CSRender/App.manifest
new file mode 100644
index 0000000000000000000000000000000000000000..1d0dce3c3f78731e71da0685a7ecb3fa07959375
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/App.manifest
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+ PerMonitor
+
+
+
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/App.xaml b/Code/NetFramework4_6_2/CSRender/App.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..79dcb99b3f9d134d74004546541a94388eded1f7
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/App.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/App.xaml.cs b/Code/NetFramework4_6_2/CSRender/App.xaml.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ab246b776877c9aef7504fc4ea1a8909cb69442a
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace CSRender
+{
+ ///
+ /// App.xaml の相互作用ロジック
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/CSRender.Data/CSRender.exe b/Code/NetFramework4_6_2/CSRender/CSRender.Data/CSRender.exe
new file mode 100644
index 0000000000000000000000000000000000000000..f919e8b19a4d836cfc8d6140ec2e6bcd24fc0389
Binary files /dev/null and b/Code/NetFramework4_6_2/CSRender/CSRender.Data/CSRender.exe differ
diff --git a/Code/NetFramework4_6_2/CSRender/CSRender.Data/CSRender.exe.config b/Code/NetFramework4_6_2/CSRender/CSRender.Data/CSRender.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..45437954e08a2d113d4b04d9d9f51e30f4676ab9
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/CSRender.Data/CSRender.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/CSRender.Data/PdfiumViewer.dll b/Code/NetFramework4_6_2/CSRender/CSRender.Data/PdfiumViewer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9fa37fd0c4f18c787d60b37d5a112b2e74981db6
Binary files /dev/null and b/Code/NetFramework4_6_2/CSRender/CSRender.Data/PdfiumViewer.dll differ
diff --git a/Code/NetFramework4_6_2/CSRender/CSRender.Data/PdfiumViewer.xml b/Code/NetFramework4_6_2/CSRender/CSRender.Data/PdfiumViewer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f73ce1246cc6952c62362b13e66609565af7b9ca
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/CSRender.Data/PdfiumViewer.xml
@@ -0,0 +1,1275 @@
+
+
+
+ PdfiumViewer
+
+
+
+
+ Determines whether the specified key is a regular input key or a special key that requires preprocessing.
+
+
+ true if the specified key is a regular input key; otherwise, false.
+
+ One of the values.
+
+
+
+ Represents a PDF document.
+
+
+
+
+ Number of pages in the PDF document.
+
+
+
+
+ Bookmarks stored in this PdfFile
+
+
+
+
+ Size of each page in the PDF document.
+
+
+
+
+ Renders a page of the PDF document to the provided graphics instance.
+
+ Number of the page to render.
+ Graphics instance to render the page on.
+ Horizontal DPI.
+ Vertical DPI.
+ Bounds to render the page in.
+ Render the page for printing.
+
+
+
+ Renders a page of the PDF document to the provided graphics instance.
+
+ Number of the page to render.
+ Graphics instance to render the page on.
+ Horizontal DPI.
+ Vertical DPI.
+ Bounds to render the page in.
+ Flags used to influence the rendering.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Horizontal DPI.
+ Vertical DPI.
+ Render the page for printing.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Horizontal DPI.
+ Vertical DPI.
+ Flags used to influence the rendering.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Width of the rendered image.
+ Height of the rendered image.
+ Horizontal DPI.
+ Vertical DPI.
+ Render the page for printing.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Width of the rendered image.
+ Height of the rendered image.
+ Horizontal DPI.
+ Vertical DPI.
+ Flags used to influence the rendering.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Width of the rendered image.
+ Height of the rendered image.
+ Horizontal DPI.
+ Vertical DPI.
+ Rotation.
+ Flags used to influence the rendering.
+ The rendered image.
+
+
+
+ Save the PDF document to the specified location.
+
+ Path to save the PDF document to.
+
+
+
+ Save the PDF document to the specified location.
+
+ Stream to save the PDF document to.
+
+
+
+ Finds all occurences of text.
+
+ The text to search for.
+ Whether to match case.
+ Whether to match whole words only.
+ All matches.
+
+
+
+ Finds all occurences of text.
+
+ The text to search for.
+ Whether to match case.
+ Whether to match whole words only.
+ The page to search on.
+ All matches.
+
+
+
+ Finds all occurences of text.
+
+ The text to search for.
+ Whether to match case.
+ Whether to match whole words only.
+ The page to start searching.
+ The page to end searching.
+ All matches.
+
+
+
+ Creates a for the PDF document.
+
+
+
+
+
+ Creates a for the PDF document.
+
+ Specifies the mode for printing. The default
+ value for this parameter is CutMargin.
+
+
+
+
+ Creates a for the PDF document.
+
+ The settings used to configure the print document.
+
+
+
+
+ Returns all links on the PDF page.
+
+ The page to get the links for.
+ The size of the page.
+ A collection with the links on the page.
+
+
+
+ Delete the page from the PDF document.
+
+ The page to delete.
+
+
+
+ Rotate the page.
+
+ The page to rotate.
+ How to rotate the page.
+
+
+
+ Get metadata information from the PDF document.
+
+ The PDF metadata.
+
+
+
+ Get all text on the page.
+
+ The page to get the text for.
+ The text on the page.
+
+
+
+ Get all text matching the text span.
+
+ The span to get the text for.
+ The text matching the span.
+
+
+
+ Get all bounding rectangles for the text span.
+
+
+ The algorithm used to get the bounding rectangles tries to join
+ adjacent character bounds into larger rectangles.
+
+ The span to get the bounding rectangles for.
+ The bounding rectangles.
+
+
+
+ Convert a point from device coordinates to page coordinates.
+
+ The page number where the point is from.
+ The point to convert.
+ The converted point.
+
+
+
+ Convert a point from page coordinates to device coordinates.
+
+ The page number where the point is from.
+ The point to convert.
+ The converted point.
+
+
+
+ Convert a rectangle from device coordinates to page coordinates.
+
+ The page where the rectangle is from.
+ The rectangle to convert.
+ The converted rectangle.
+
+
+
+ Convert a rectangle from page coordinates to device coordinates.
+
+ The page where the rectangle is from.
+ The rectangle to convert.
+ The converted rectangle.
+
+
+
+ Represents a marker on a PDF page.
+
+
+
+
+ The page where the marker is drawn on.
+
+
+
+
+ Draw the marker.
+
+ The PdfRenderer to draw the marker with.
+ The Graphics to draw the marker with.
+
+
+
+ Gets the link that was clicked.
+
+
+
+
+ Opens a document using a .NET Stream. Allows opening huge
+ PDFs without loading them into memory first.
+
+ The input Stream. Don't dispose prior to closing the pdf.
+ Password, if the PDF is protected. Can be null.
+ Retrieves an IntPtr to the COM object for the Stream. The caller must release this with Marshal.Release prior to Disposing the Stream.
+ An IntPtr to the FPDF_DOCUMENT object.
+
+
+
+ Gets or sets the current zoom level.
+
+
+
+
+ Zooms the PDF document in one step.
+
+
+
+
+ Zooms the PDF document out one step.
+
+
+
+
+ Raises the event.
+
+ A that contains the event data.
+
+
+
+ Determines whether the specified key is a regular input key or a special key that requires preprocessing.
+
+
+ true if the specified key is a regular input key; otherwise, false.
+
+ One of the values.
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ Configuration for printing multiple PDF pages on a single page.
+
+
+
+
+ Gets the number of pages to print horizontally.
+
+
+
+
+ Gets the number of pages to print vertically.
+
+
+
+
+ Gets the orientation in which PDF pages are layed out on the
+ physical page.
+
+
+
+
+ Gets the margin between PDF pages in device units.
+
+
+
+
+ Creates a new instance of the PdfPrintMultiplePages class.
+
+ The number of pages to print horizontally.
+ The number of pages to print vertically.
+ The orientation in which PDF pages are layed out on
+ the physical page.
+ The margin between PDF pages in device units.
+
+
+
+ Configures the print document.
+
+
+
+
+ Gets the mode used to print margins.
+
+
+
+
+ Gets configuration for printing multiple PDF pages on a single page.
+
+
+
+
+ Creates a new instance of the PdfPrintSettings class.
+
+ The mode used to print margins.
+ Configuration for printing multiple PDF
+ pages on a single page.
+
+
+
+ Provides functionality to render a PDF document.
+
+
+
+
+ Initializes a new instance of the PdfDocument class with the provided path.
+
+ Path to the PDF document.
+
+
+
+ Initializes a new instance of the PdfDocument class with the provided path.
+
+ Path to the PDF document.
+ Password for the PDF document.
+
+
+
+ Initializes a new instance of the PdfDocument class with the provided path.
+
+ Window to show any UI for.
+ Path to the PDF document.
+
+
+
+ Initializes a new instance of the PdfDocument class with the provided path.
+
+ Window to show any UI for.
+ Stream for the PDF document.
+
+
+
+ Initializes a new instance of the PdfDocument class with the provided stream.
+
+ Stream for the PDF document.
+
+
+
+ Initializes a new instance of the PdfDocument class with the provided stream.
+
+ Stream for the PDF document.
+ Password for the PDF document.
+
+
+
+ Number of pages in the PDF document.
+
+
+
+
+ Bookmarks stored in this PdfFile
+
+
+
+
+ Size of each page in the PDF document.
+
+
+
+
+ Renders a page of the PDF document to the provided graphics instance.
+
+ Number of the page to render.
+ Graphics instance to render the page on.
+ Horizontal DPI.
+ Vertical DPI.
+ Bounds to render the page in.
+ Render the page for printing.
+
+
+
+ Renders a page of the PDF document to the provided graphics instance.
+
+ Number of the page to render.
+ Graphics instance to render the page on.
+ Horizontal DPI.
+ Vertical DPI.
+ Bounds to render the page in.
+ Flags used to influence the rendering.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Horizontal DPI.
+ Vertical DPI.
+ Render the page for printing.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Horizontal DPI.
+ Vertical DPI.
+ Flags used to influence the rendering.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Width of the rendered image.
+ Height of the rendered image.
+ Horizontal DPI.
+ Vertical DPI.
+ Render the page for printing.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Width of the rendered image.
+ Height of the rendered image.
+ Horizontal DPI.
+ Vertical DPI.
+ Flags used to influence the rendering.
+ The rendered image.
+
+
+
+ Renders a page of the PDF document to an image.
+
+ Number of the page to render.
+ Width of the rendered image.
+ Height of the rendered image.
+ Horizontal DPI.
+ Vertical DPI.
+ Rotation.
+ Flags used to influence the rendering.
+ The rendered image.
+
+
+
+ Save the PDF document to the specified location.
+
+ Path to save the PDF document to.
+
+
+
+ Save the PDF document to the specified location.
+
+ Stream to save the PDF document to.
+
+
+
+ Finds all occurences of text.
+
+ The text to search for.
+ Whether to match case.
+ Whether to match whole words only.
+ All matches.
+
+
+
+ Finds all occurences of text.
+
+ The text to search for.
+ Whether to match case.
+ Whether to match whole words only.
+ The page to search on.
+ All matches.
+
+
+
+ Finds all occurences of text.
+
+ The text to search for.
+ Whether to match case.
+ Whether to match whole words only.
+ The page to start searching.
+ The page to end searching.
+ All matches.
+
+
+
+ Get all text on the page.
+
+ The page to get the text for.
+ The text on the page.
+
+
+
+ Get all text matching the text span.
+
+ The span to get the text for.
+ The text matching the span.
+
+
+
+ Get all bounding rectangles for the text span.
+
+
+ The algorithm used to get the bounding rectangles tries to join
+ adjacent character bounds into larger rectangles.
+
+ The span to get the bounding rectangles for.
+ The bounding rectangles.
+
+
+
+ Convert a point from device coordinates to page coordinates.
+
+ The page number where the point is from.
+ The point to convert.
+ The converted point.
+
+
+
+ Convert a point from page coordinates to device coordinates.
+
+ The page number where the point is from.
+ The point to convert.
+ The converted point.
+
+
+
+ Convert a rectangle from device coordinates to page coordinates.
+
+ The page where the rectangle is from.
+ The rectangle to convert.
+ The converted rectangle.
+
+
+
+ Convert a rectangle from page coordinates to device coordinates.
+
+ The page where the rectangle is from.
+ The rectangle to convert.
+ The converted rectangle.
+
+
+
+ Creates a for the PDF document.
+
+
+
+
+
+ Creates a for the PDF document.
+
+ Specifies the mode for printing. The default
+ value for this parameter is CutMargin.
+
+
+
+
+ Creates a for the PDF document.
+
+ The settings used to configure the print document.
+
+
+
+
+ Returns all links on the PDF page.
+
+ The page to get the links for.
+ The size of the page.
+ A collection with the links on the page.
+
+
+
+ Delete the page from the PDF document.
+
+ The page to delete.
+
+
+
+ Rotate the page.
+
+ The page to rotate.
+ How to rotate the page.
+
+
+
+ Get metadata information from the PDF document.
+
+ The PDF metadata.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+ 2
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+ Whether this method is called from Dispose.
+
+
+
+ Contains text from metadata of the document.
+
+
+
+
+ Helper class for searching through PDF documents.
+
+
+
+
+ The renderer associated with the search manager.
+
+
+
+
+ Gets or sets whether to match case.
+
+
+
+
+ Gets or sets whether to match whole words.
+
+
+
+
+ Gets or sets the color of matched search terms.
+
+
+
+
+ Gets or sets the border color of matched search terms.
+
+
+
+
+ Gets or sets the border width of matched search terms.
+
+
+
+
+ Gets or sets the color of the current match.
+
+
+
+
+ Gets or sets the border color of the current match.
+
+
+
+
+ Gets or sets the border width of the current match.
+
+
+
+
+ Gets or sets whether all matches should be highlighted.
+
+
+
+
+ Creates a new instance of the search manager.
+
+ The renderer to create the search manager for.
+
+
+
+ Searches for the specified text.
+
+ The text to search.
+ Whether any matches were found.
+
+
+
+ Find the next matched term.
+
+ Whether or not to search forward.
+ False when the first match was found again; otherwise true.
+
+
+
+ Resets the search manager.
+
+
+
+
+ Describes a link on a page.
+
+
+
+
+ The location of the link.
+
+
+
+
+ The target of the link.
+
+
+
+
+ The target URI of the link.
+
+
+
+
+ Creates a new instance of the PdfPageLink class.
+
+ The location of the link
+ The target page of the link
+ The target URI of the link
+
+
+
+ Describes all links on a page.
+
+
+
+
+ All links of the page.
+
+
+
+
+ Creates a new instance of the PdfPageLinks class.
+
+ The links on the PDF page.
+
+
+
+ Specifies the mode in which the document should be printed.
+
+
+ Printers have a hard margin. This is a (small) margin on which it is not
+ possible to print. PdfPrintMode specifies whether the page should be
+ scaled to fit into this margin, or that the margin should be cut off of
+ the page.
+
+
+
+
+ Shrink the print area to fall within the hard printer margin.
+
+
+
+
+ Cut the hard printer margin from the output.
+
+
+
+
+ Flags that influence the page rendering process.
+
+
+
+
+ No flags.
+
+
+
+
+ Render for printing.
+
+
+
+
+ Set if annotations are to be rendered.
+
+
+
+
+ Set if using text rendering optimized for LCD display.
+
+
+
+
+ Don't use the native text output available on some platforms.
+
+
+
+
+ Grayscale output.
+
+
+
+
+ Limit image cache size.
+
+
+
+
+ Always use halftone for image stretching.
+
+
+
+
+ Render with a transparent background.
+
+
+
+
+ Correct height/width for DPI.
+
+
+
+
+ Control to render PDF documents.
+
+
+
+
+ The associated PDF document.
+
+
+
+
+ Gets or sets a value indicating whether the user can give the focus to this control using the TAB key.
+
+
+
+ true if the user can give the focus to the control using the TAB key; otherwise, false. The default is true.Note:This property will always return true for an instance of the class.
+
+ 1
+
+
+
+ Gets or sets the currently focused page.
+
+
+
+
+ Get the outer bounds of the page.
+
+ The page to get the bounds for.
+ The bounds of the page.
+
+
+
+ Gets or sets the way the document should be zoomed initially.
+
+
+
+
+ Gets or sets the current rotation of the PDF document.
+
+
+
+
+ Gets a collection with all markers.
+
+
+
+
+ Initializes a new instance of the PdfRenderer class.
+
+
+
+
+ Converts client coordinates to PDF coordinates.
+
+ Client coordinates to get the PDF location for.
+ The location in a PDF page or a PdfPoint with IsValid false when the coordinates do not match a PDF page.
+
+
+
+ Converts a PDF point to a client point.
+
+ The PDF point to convert.
+ The location of the point in client coordinates.
+
+
+
+ Converts client coordinates to PDF bounds.
+
+ The client coordinates to convert.
+ The PDF bounds.
+
+
+
+ Converts PDF bounds to client bounds.
+
+ The PDF bounds to convert.
+ The bounds of the PDF bounds in client coordinates.
+
+
+
+ Raises the event.
+
+ A that contains the event data.
+
+
+
+ Called when the zoom level changes.
+
+ The event args.
+
+
+
+ Load a into the control.
+
+ Document to load.
+
+
+
+ Raises the event.
+
+ A that contains the event data.
+
+
+
+ Gets the document bounds.
+
+ The document bounds.
+
+
+
+ Called whent he cursor changes.
+
+ The event args.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+
+ Occurs when a link in the pdf document is clicked.
+
+
+
+
+ Called when a link is clicked.
+
+ The event args.
+
+
+
+ Rotate the PDF document left.
+
+
+
+
+ Rotate the PDF document right.
+
+
+
+
+ Called when the zoom level changes.
+
+ The new zoom level.
+ The location to focus on.
+
+
+
+ Scroll the PDF bounds into view.
+
+ The PDF bounds to scroll into view.
+
+
+
+ Scroll the client rectangle into view.
+
+ The client rectangle to scroll into view.
+
+
+
+ Releases the unmanaged resources used by the and its child controls and optionally releases the managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Specifies the rotation of pages shown in the PDF renderer.
+
+
+
+
+ Rotates the output 0 degrees.
+
+
+
+
+ Rotates the output 90 degrees.
+
+
+
+
+ Rotates the output 180 degrees.
+
+
+
+
+ Rotates the output 270 degrees.
+
+
+
+
+ Control to host PDF documents with support for printing.
+
+
+
+
+ Gets or sets the PDF document.
+
+
+
+
+ Get the that renders the PDF document.
+
+
+
+
+ Gets or sets the default document name used when saving the document.
+
+
+
+
+ Gets or sets the default print mode.
+
+
+
+
+ Gets or sets the way the document should be zoomed initially.
+
+
+
+
+ Gets or sets whether the toolbar should be shown.
+
+
+
+
+ Gets or sets whether the bookmarks panel should be shown.
+
+
+
+
+ Gets or sets the pre-selected printer to be used when the print
+ dialog shows up.
+
+
+
+
+ Occurs when a link in the pdf document is clicked.
+
+
+
+
+ Called when a link is clicked.
+
+
+
+
+
+ Initializes a new instance of the PdfViewer class.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized string similar to Page {0}.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized string similar to Could not save the PDF file to the specified location..
+
+
+
+
+ Looks up a localized string similar to Could not save file.
+
+
+
+
+ Looks up a localized string similar to PDF Files (*.pdf)|*.pdf|All Files (*.*)|*.*.
+
+
+
+
+ Looks up a localized string similar to Save As.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
+ Looks up a localized resource of type System.Drawing.Bitmap.
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/CSRender.Data/nl/PdfiumViewer.resources.dll b/Code/NetFramework4_6_2/CSRender/CSRender.Data/nl/PdfiumViewer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..05581f745b104466e94acbd3eebf449dd067d367
Binary files /dev/null and b/Code/NetFramework4_6_2/CSRender/CSRender.Data/nl/PdfiumViewer.resources.dll differ
diff --git a/Code/NetFramework4_6_2/CSRender/CSRender.csproj b/Code/NetFramework4_6_2/CSRender/CSRender.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..921f641e045ccaff5744dc4c524a36c4a3ce3d22
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/CSRender.csproj
@@ -0,0 +1,122 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {FF5750DD-484C-453F-BC0D-C59FE0BBF8BF}
+ WinExe
+ CSRender
+ CSRender
+ v4.6.2
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.2\lib\Microsoft.WindowsAPICodePack.dll
+
+
+ ..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll
+
+
+ ..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll
+
+
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Code/NetFramework4_6_2/CSRender/CompareTIFF.cs b/Code/NetFramework4_6_2/CSRender/CompareTIFF.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c2ef8e7d88e228df5cfa4c6e8cce506bc42e4b30
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/CompareTIFF.cs
@@ -0,0 +1,123 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Controls.Primitives;
+using System.Text.RegularExpressions;
+using System.Diagnostics;
+using System.IO;
+
+namespace CSRender
+{
+ class CompareTIFF
+ {
+ public static string runPureVerify(string targetDir, string referenceDir, string workPath,
+ string shiftPixel, string colorMargin, string removePoint, string shadingOff, bool reportFlag, string reportName)
+ {
+ //実行用コンソールの呼び出し
+ ProcessStartInfo processStartInfo = new ProcessStartInfo();
+ string appPath = System.Reflection.Assembly.GetExecutingAssembly().Location; //モジュールのパスを取得
+ string appDirectory = appPath.Substring(0, appPath.LastIndexOf(@"\") + 1); //モジュールの存在するディレクトリを取得
+ string exePath = System.IO.Path.Combine("PureVerify.Data", "RipVerify", "bin", "x64");
+ processStartInfo.FileName = System.IO.Path.Combine(appDirectory, exePath, "PureVerify.exe");
+ processStartInfo.CreateNoWindow = true; // コマンドプロンプトを非表示
+ processStartInfo.UseShellExecute = false; // シェル機能オフ
+ processStartInfo.RedirectStandardOutput = true;//標準出力をリダイレクト
+
+ //引数設定
+ //指定ファイル
+ processStartInfo.Arguments = "/tar ";
+ processStartInfo.Arguments += targetDir;
+
+ //リファレンスファイル
+ processStartInfo.Arguments += " /ref ";
+ processStartInfo.Arguments += referenceDir;
+
+ //EquiosCenterの場所
+ string EquiosCenter = System.IO.Path.Combine(appDirectory, "PureVerify.Data", "EquiosCenter");
+ processStartInfo.Arguments += " /equios ";
+ processStartInfo.Arguments += EquiosCenter;
+
+ //出力ファイル形式の引数
+ processStartInfo.Arguments += " /work ";
+
+ //processStartInfo.Arguments += workPath;
+ string workDir = System.IO.Path.Combine(appDirectory, "PureVerify.Data", "RipVerify");
+ processStartInfo.Arguments += workDir;
+
+ //検版の指定(2だとNGログ検版(LOG-Diff)になる)
+ processStartInfo.Arguments += " /operation \"1\"";
+ //差異箇所マークのサイズを指定
+ processStartInfo.Arguments += " /markdis \"50\"";
+ //PDFReportの画像の圧縮形式(0:ZLIB、1:LZW、2:JPEG、3:JPEG2000、4:RUN_LENGTH)
+ processStartInfo.Arguments += " /encode \"1\"";
+ //検版結果OKとなったファイルリストをPDFレポートの最後に記載(0:記載しない、1:記載する)
+ processStartInfo.Arguments += " /show \"1\"";
+ //検版品質ファイルの選択(0:弱、1:中、2:強、3:カスタム)
+ processStartInfo.Arguments += " /quality \"3\"";
+
+ //検版パラメータの設定
+ processStartInfo.Arguments += " /shiftpixel \"";
+ processStartInfo.Arguments += shiftPixel;
+ processStartInfo.Arguments += "\" /colormargin \"";
+ processStartInfo.Arguments += colorMargin;
+ processStartInfo.Arguments += "\" /removepoint \"";
+ processStartInfo.Arguments += removePoint;
+ processStartInfo.Arguments += "\" /shadingoff \"";
+ processStartInfo.Arguments += shadingOff;
+ processStartInfo.Arguments += "\"";
+ if (reportFlag == true)
+ {
+ processStartInfo.Arguments += " /inspReport \"";
+ processStartInfo.Arguments += reportName;
+ processStartInfo.Arguments += "\"";
+ }
+
+ //CSRender.exeを実行
+ Process process = Process.Start(processStartInfo);
+ process.BeginOutputReadLine();
+ process.WaitForExit();
+ process.Close();
+
+ return workDir;
+ }
+
+ //指定先にレポートを移動
+ public static void moveReport(string resultPath, string workPath)
+ {
+ string reportPath = System.IO.Path.Combine(resultPath, "report");
+ if (!Directory.Exists(reportPath))//指定先にreportフォルダがあるか
+ {
+ Directory.CreateDirectory(reportPath);//なければ新規でreportフォルダを作成
+ }
+ var allReport = Directory.EnumerateFiles(System.IO.Path.Combine(workPath, "report")
+ , "*", SearchOption.TopDirectoryOnly);//reportフォルダ内の全てのファイルを取得
+ foreach (string file in allReport)
+ {
+ string fileTarget = System.IO.Path.Combine(reportPath, System.IO.Path.GetFileName(file));//旧パスからファイル名を取得して新しいパスを作成
+ File.Copy(file, fileTarget, true);//指定先にコピー
+ File.Delete(file);//コピー元のファイルを削除
+ }
+ }
+
+ //検版レポートのファイル名を取得
+ public static string getReportName(string workPath)
+ {
+ string[] reportFilePath = System.IO.Directory.GetFiles(System.IO.Path.Combine(workPath, "report")
+ , "*.pdf", System.IO.SearchOption.TopDirectoryOnly);//レポートファイルのパスを取得
+ string ReportName = System.IO.Path.GetFileName(reportFilePath[0]);//file名を抽出
+
+ return ReportName;
+ }
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/CustomMsgBox.cs b/Code/NetFramework4_6_2/CSRender/CustomMsgBox.cs
new file mode 100644
index 0000000000000000000000000000000000000000..deab80b3c7562b9bb57dc77341ff16c5724d6bb9
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/CustomMsgBox.cs
@@ -0,0 +1,168 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Interop;
+using System.Runtime.InteropServices;
+
+namespace CSRender
+{
+ class CustomMsgBox
+ {
+ ///
+ /// 親ウィンドウ
+ ///
+ private Window ownerWindow = null;
+
+ ///
+ /// フックハンドル
+ ///
+ private IntPtr hHook = IntPtr.Zero;
+
+ ///
+ /// メッセージボックスを表示する
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static MessageBoxResult Show(
+ Window owner,
+ string messageBoxText,
+ string caption,
+ MessageBoxButton button,
+ MessageBoxImage icon)
+ {
+
+ if (owner.WindowState == WindowState.Minimized)
+ {
+ return MessageBox.Show(owner, messageBoxText, caption, button, icon);
+ }
+ else
+ {
+ CustomMsgBox mbox = new CustomMsgBox(owner);
+ return mbox.Show(messageBoxText, caption, button, icon);
+ }
+ }
+
+ ///
+ /// コンストラクタ
+ ///
+ /// Owner Window
+ private CustomMsgBox(Window window)
+ {
+ ownerWindow = window;
+ }
+
+ ///
+ /// メッセージボックスを表示する
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ private MessageBoxResult Show(
+ string messageBoxText,
+ string caption,
+ MessageBoxButton button,
+ MessageBoxImage icon)
+ {
+ // フックを設定する。
+ HwndSource hwndSource = (HwndSource)HwndSource.FromVisual(ownerWindow);
+ IntPtr hInstance = WinAPI.GetWindowLong(hwndSource.Handle, WinAPI.GWL_HINSTANCE);
+ IntPtr threadId = WinAPI.GetCurrentThreadId();
+ hHook = WinAPI.SetWindowsHookEx(WinAPI.WH_CBT, new WinAPI.HOOKPROC(HookProc), hInstance, threadId);
+
+ return MessageBox.Show(ownerWindow, messageBoxText, caption, button, icon);
+ }
+
+ ///
+ /// フックプロシージャ
+ ///
+ ///
+ ///
+ ///
+ ///
+ private IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam)
+ {
+
+ if (nCode == WinAPI.HCBT_ACTIVATE)
+ {
+ WinAPI.RECT rcForm = new WinAPI.RECT(0, 0, 0, 0);
+ WinAPI.RECT rcMsgBox = new WinAPI.RECT(0, 0, 0, 0);
+
+ HwndSource hwndSource = (HwndSource)HwndSource.FromVisual(ownerWindow);
+ WinAPI.GetWindowRect(hwndSource.Handle, out rcForm);
+ WinAPI.GetWindowRect(wParam, out rcMsgBox);
+
+ // センター位置を計算する。
+ int x = (rcForm.Left + (rcForm.Right - rcForm.Left) / 2) - ((rcMsgBox.Right - rcMsgBox.Left) / 2);
+ int y = (rcForm.Top + (rcForm.Bottom - rcForm.Top) / 2) - ((rcMsgBox.Bottom - rcMsgBox.Top) / 2);
+
+ WinAPI.SetWindowPos(wParam, 0, x, y, 0, 0, WinAPI.SWP_NOSIZE | WinAPI.SWP_NOZORDER | WinAPI.SWP_NOACTIVATE);
+
+ IntPtr result = WinAPI.CallNextHookEx(hHook, nCode, wParam, lParam);
+
+ // フックを解除する。
+ WinAPI.UnhookWindowsHookEx(hHook);
+ hHook = IntPtr.Zero;
+
+ return result;
+
+ }
+ else
+ {
+ return WinAPI.CallNextHookEx(hHook, nCode, wParam, lParam);
+ }
+ }
+ }
+
+ internal class WinAPI
+ {
+ [DllImport("user32.dll")]
+ public static extern IntPtr GetWindowLong(IntPtr hWnd, int nIndex);
+ [DllImport("kernel32.dll")]
+ public static extern IntPtr GetCurrentThreadId();
+ [DllImport("user32.dll")]
+ public static extern IntPtr SetWindowsHookEx(int idHook, HOOKPROC lpfn, IntPtr hInstance, IntPtr threadId);
+ [DllImport("user32.dll")]
+ public static extern bool UnhookWindowsHookEx(IntPtr hHook);
+ [DllImport("user32.dll")]
+ public static extern IntPtr CallNextHookEx(IntPtr hHook, int nCode, IntPtr wParam, IntPtr lParam);
+ [DllImport("user32.dll")]
+ public static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
+ [DllImport("user32.dll")]
+ public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
+
+ public delegate IntPtr HOOKPROC(int nCode, IntPtr wParam, IntPtr lParam);
+
+ public const int GWL_HINSTANCE = (-6);
+ public const int WH_CBT = 5;
+ public const int HCBT_ACTIVATE = 5;
+
+ public const int SWP_NOSIZE = 0x0001;
+ public const int SWP_NOZORDER = 0x0004;
+ public const int SWP_NOACTIVATE = 0x0010;
+
+ public struct RECT
+ {
+ public RECT(int inLeft, int inTop, int inRight, int inBottom)
+ {
+ Left = inLeft;
+ Top = inTop;
+ Right = inRight;
+ Bottom = inBottom;
+ }
+
+ public int Left;
+ public int Top;
+ public int Right;
+ public int Bottom;
+ }
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/FilePathSelect.cs b/Code/NetFramework4_6_2/CSRender/FilePathSelect.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b126486d206f7aaee635aba7bd200e6877eb4163
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/FilePathSelect.cs
@@ -0,0 +1,283 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Controls.Primitives;
+using System.Text.RegularExpressions;
+using Microsoft.Win32;
+using MSAPI = Microsoft.WindowsAPICodePack;
+using System.IO;
+
+namespace CSRender
+{
+ public partial class MainWindow : Window
+ {
+ //フォルダ指定のためにファイルをドラッグ
+ private void textBox_PreviewDragOver(object sender, System.Windows.DragEventArgs e)
+ {
+ if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop, true))
+ {
+ e.Effects = System.Windows.DragDropEffects.Copy;
+ }
+ else
+ {
+ e.Effects = System.Windows.DragDropEffects.None;
+ }
+ e.Handled = true;
+ }
+
+ //エクスプローラーからテキストボックスにドロップして指定フォルダの場所をペースト
+ private void TargetBox_Drop(object sender, System.Windows.DragEventArgs e)
+ {
+ var dropFiles = e.Data.GetData(System.Windows.DataFormats.FileDrop) as string[];
+ if (dropFiles == null) return;
+ //カーソルを終端に置く
+ targetBox.Text = dropFiles[0];
+ targetBox.Focus();
+ targetBox.Select(this.targetBox.Text.Length, 0);
+ }
+ private void RefBox_Drop(object sender, System.Windows.DragEventArgs e)
+ {
+ var dropFiles = e.Data.GetData(System.Windows.DataFormats.FileDrop) as string[];
+ if (dropFiles == null) return;
+ //カーソルを終端に置く
+ referenceBox.Text = dropFiles[0];
+ referenceBox.Focus();
+ referenceBox.Select(this.referenceBox.Text.Length, 0);
+ }
+ private void WorkBox_Drop(object sender, System.Windows.DragEventArgs e)
+ {
+ var dropFiles = e.Data.GetData(System.Windows.DataFormats.FileDrop) as string[];
+ if (dropFiles == null) return;
+ //カーソルを終端に置く
+ workBox.Text = dropFiles[0];
+ workBox.Focus();
+ workBox.Select(this.workBox.Text.Length, 0);
+ if (!Directory.Exists(System.IO.Path.Combine(workBox.Text, "report")))
+ {
+ Directory.CreateDirectory(System.IO.Path.Combine(workBox.Text, "report"));
+ }
+ }
+
+ private void ReportBox_Drop(object sender, System.Windows.DragEventArgs e)
+ {
+ var dropFiles = e.Data.GetData(System.Windows.DataFormats.FileDrop) as string[];
+ if (dropFiles == null) return;
+ //カーソルを終端に置く
+ reportBox.Text = dropFiles[0] + @"\";
+ reportBox.Focus();
+ reportBox.Select(this.reportBox.Text.Length, 0);
+ }
+
+ //参照ボタンClickでフォルダ選択のダイアログを表示(対象フォルダ)
+ private void TagetButton_Click(object sender, RoutedEventArgs e)
+ {
+
+ //フォルダ選択の場合
+ var selectFile = new MSAPI::Dialogs.CommonOpenFileDialog();
+ selectFile.IsFolderPicker = true;
+ selectFile.Title = "フォルダを選択してください";
+ if (Directory.Exists(targetBox.Text))//前回値が存在する場合はそのフォルダを初期値として表示
+ {
+ selectFile.InitialDirectory = targetBox.Text.Substring(0, targetBox.Text.LastIndexOf(@"\"));
+ }
+ else
+ {
+ selectFile.InitialDirectory = @"C:";
+ }
+ if (selectFile.ShowDialog() != MSAPI::Dialogs.CommonFileDialogResult.Ok)
+ {
+ return;
+ }
+ //共通部分
+ targetBox.Text = selectFile.FileName;
+ targetBox.Focus();
+ targetBox.Select(this.targetBox.Text.Length, 0);
+ }
+
+ //参照ボタンClickでフォルダ選択のダイアログを表示(リファレンスフォルダ)
+ private void ReferenceButton_Click(object sender, RoutedEventArgs e)
+ {
+
+ //フォルダ選択の場合
+ var selectFile = new MSAPI::Dialogs.CommonOpenFileDialog();
+ selectFile.IsFolderPicker = true;
+ selectFile.Title = "フォルダを選択してください";
+ if (Directory.Exists(referenceBox.Text))//前回値が存在する場合はそのフォルダを初期値として表示
+ {
+ selectFile.InitialDirectory = referenceBox.Text.Substring(0, referenceBox.Text.LastIndexOf(@"\"));
+ }
+ else
+ {
+ selectFile.InitialDirectory = @"C:";
+ }
+ if (selectFile.ShowDialog() != MSAPI::Dialogs.CommonFileDialogResult.Ok)
+ {
+ return;
+ }
+ //共通部分
+ referenceBox.Text = selectFile.FileName;
+ referenceBox.Focus();
+ referenceBox.Select(this.referenceBox.Text.Length, 0);
+ }
+
+ //参照ボタンClickでフォルダ選択のダイアログを表示(作業フォルダ)
+ private void WorkButton_Click(object sender, RoutedEventArgs e)
+ {
+
+ //フォルダ選択の場合
+ var selectFile = new MSAPI::Dialogs.CommonOpenFileDialog();
+ selectFile.IsFolderPicker = true;
+ selectFile.Title = "フォルダを選択してください";
+ if (Directory.Exists(workBox.Text))//前回値が存在する場合はそのフォルダを初期値として表示
+ {
+ selectFile.InitialDirectory = workBox.Text.Substring(0, workBox.Text.LastIndexOf(@"\"));
+ }
+ else
+ {
+ selectFile.InitialDirectory = @"C:";
+ }
+ if (selectFile.ShowDialog() != MSAPI::Dialogs.CommonFileDialogResult.Ok)
+ {
+ return;
+ }
+ //共通部分
+ workBox.Text = selectFile.FileName;
+ workBox.Focus();
+ workBox.Select(this.workBox.Text.Length, 0);
+ if (!Directory.Exists(System.IO.Path.Combine(selectFile.FileName, "report")))
+ {
+ Directory.CreateDirectory(System.IO.Path.Combine(selectFile.FileName, "report"));
+ }
+ //reportBox.Text = System.IO.Path.Combine(selectFile.FileName, "report") + @"\";
+ }
+
+ //参照ボタンClickでフォルダ選択のダイアログを表示(検版レポートパス)
+ private void ReportButton_Click(object sender, RoutedEventArgs e)
+ {
+
+ //フォルダ選択の場合
+ var selectFile = new MSAPI::Dialogs.CommonOpenFileDialog();
+ selectFile.IsFolderPicker = true;
+ selectFile.Title = "フォルダを選択してください";
+ if (Directory.Exists(workBox.Text))//前回値が存在する場合はそのフォルダを初期値として表示
+ {
+ selectFile.InitialDirectory = workBox.Text.Substring(0, workBox.Text.LastIndexOf(@"\"));
+ }
+ else
+ {
+ selectFile.InitialDirectory = @"C:";
+ }
+ if (selectFile.ShowDialog() != MSAPI::Dialogs.CommonFileDialogResult.Ok)
+ {
+ return;
+ }
+ //共通部分
+ reportBox.Text = selectFile.FileName + @"\";
+ reportBox.Focus();
+ reportBox.Select(this.reportBox.Text.Length, 0);
+ }
+
+ private void EditEnvFile()
+ {
+ string appPath = System.Reflection.Assembly.GetExecutingAssembly().Location; //モジュールのパスを取得
+ string appDirectory = appPath.Substring(0, appPath.LastIndexOf(@"\") + 1); //モジュールの存在するディレクトリを取得
+ string dataPath = System.IO.Path.Combine("PureVerify.Data", "RipVerify", "setup", "PureVerifyDlg.env");
+ string envFilePath = System.IO.Path.Combine(appDirectory, dataPath);//PureVerifyDlg.envまでのフルパス
+
+ //.envファイルに記述する内容
+ string equiosCenterPath = System.IO.Path.Combine(appDirectory, "PureVerify.Data", "EquiosCenter");//EquiosCenterのフルパス
+ string workFolderPath = System.IO.Path.Combine(appDirectory, "PureVerify.Data", "RipVerify");//内部作業フォルダのフルパス
+ string writeText = "**EquiosCenter: \"" + equiosCenterPath + "\"\r\n";
+ writeText += "**WorkDirRoot: \"" + workFolderPath + "\"\r\n";
+ writeText += "**InspQuality: \"3\"\r\n";
+ writeText += "**MarkDistance: \"50\"\r\n";
+ writeText += "**ReportEncodeType: \"2\"\r\n";
+ writeText += "**WndPosLeft: \"348\"\r\n";
+ writeText += "**WndPosTop: \"125\"\r\n";
+ writeText += "**WndPosRight: \"933\"\r\n";
+ writeText += "**WndPosBottom: \"556\"\r\n";
+ writeText += "**ShowOKList: \"1\"\r\n";
+
+ // StreamWriterオブジェクトのインスタンスを生成
+ StreamWriter streamWriter = new StreamWriter(envFilePath, false, Encoding.GetEncoding("Shift_JIS"));
+ // Writeメソッドで文字列データを書き込む
+ streamWriter.Write(writeText);
+ // StreamWriterオブジェクトを閉じる
+ streamWriter.Close();
+
+ }
+
+ //レポート出力パスの確認
+ private bool checkReportPath()
+ {
+ bool reportFlag = false;
+ string pdfReportPath = "";
+ string pdfReportName = "";
+ int directoryCount = 0;
+ if (reportBox.Text != "")//入力があるか
+ {
+ directoryCount = reportBox.Text.Split(char.Parse(@"\")).Length - 1;//入力文字列がファイル名のみかディレクトリも含むか
+ if (directoryCount == 0)//ファイル名のみならば作業ディレクトリのreportフォルダに出力
+ {
+ reportBox.Text = NameCalibration(reportBox.Text);
+ reportBox.Text = System.IO.Path.Combine(workBox.Text, "report", reportBox.Text);
+ }
+ pdfReportPath = reportBox.Text.Substring(0, reportBox.Text.LastIndexOf(@"\"));//メニュー入力から出力パスを取得
+ pdfReportName = reportBox.Text.Substring(reportBox.Text.LastIndexOf(@"\"));//メニュー入力からレポートファイル名を取得
+ if (!System.IO.Path.IsPathRooted(pdfReportPath))//指定したパス文字列にルートが含まれているかどうか
+ {
+ pdfReportPath = System.IO.Path.Combine(workBox.Text, "report", pdfReportPath);//含まれていなければ作業フォルダのreportフォルダに出力
+ }
+ if (!Directory.Exists(pdfReportPath))//指定先のフォルダが存在するか
+ {
+ Directory.CreateDirectory(pdfReportPath);//なければ作成
+ }
+ pdfReportPath = System.IO.Path.GetFullPath(pdfReportPath);//フルパスを取得
+
+ //レポートファイル名に不正文字が使用されいないかチェック
+ pdfReportName = NameCalibration(pdfReportName);
+
+ if (pdfReportName.Length < 4 || pdfReportName.Substring(pdfReportName.Length - 4) != ".pdf")//入力に拡張子がついているか
+ {
+ pdfReportName += ".pdf";
+ }
+ reportBox.Text = pdfReportPath + pdfReportName;
+ reportBox.Focus();
+ reportBox.Select(this.reportBox.Text.Length, 0);
+ reportFlag = true;
+ }
+ return reportFlag;
+ }
+
+ //レポート名に使用不可の文字が含まれている場合の処理
+ private string NameCalibration(string inFileName)
+ {
+ string[] charsToRemove = new string[] { "/", ":", "*", "?", "<", ">", "|" };
+ char[] charsTocheck = new char[] { '/', ':', '*', '?', '<', '>', '|' };
+ if (inFileName.IndexOfAny(charsTocheck) >= 0)
+ {
+ foreach (var allNg in charsToRemove)
+ {
+ inFileName = inFileName.Replace(allNg, string.Empty);
+ }
+ ResultConsole.Text += " 検版レポート名に使用できない文字が含まれていたため、自動修正しました。";
+ ResultConsole.Text += "\r\n\r\n";
+ DoEvents();
+ }
+
+ return inFileName;
+ }
+
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/MainWindow.xaml b/Code/NetFramework4_6_2/CSRender/MainWindow.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..f2128f28f63194f34beba29710788e090a28c6d9
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/MainWindow.xaml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/MainWindow.xaml.cs b/Code/NetFramework4_6_2/CSRender/MainWindow.xaml.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c367396a04b3449ee5301795eb78d0612f384691
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/MainWindow.xaml.cs
@@ -0,0 +1,455 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Controls.Primitives;
+using System.Text.RegularExpressions;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.IO;
+using System.Windows.Threading;
+
+namespace CSRender
+{
+ ///
+ /// MainWindow.xaml の相互作用ロジック
+ ///
+ public partial class MainWindow : Window
+ {
+ //comboBoxのインスタンス
+ private ObservableCollection PagePattern = new ObservableCollection();
+ private ObservableCollection FilePattern = new ObservableCollection();
+ public MainWindow()
+ {
+ InitializeComponent();
+
+ //ページ入力メニューの設定
+ PagePattern.Add((new ComboBoxSet { Id = 1, Item = "全ページ" }));
+ PagePattern.Add((new ComboBoxSet { Id = 2, Item = "指定" }));
+ PageRange.ItemsSource = PagePattern;
+
+ pageBox.GotFocus += PageBox_GotFocusSelectAll;
+
+ //出力ファイル形式メニューの設定
+ FilePattern.Add((new ComboBoxSet { Id = 1, Item = "JPG" }));
+ FilePattern.Add((new ComboBoxSet { Id = 2, Item = "JPEG" }));
+ FilePattern.Add((new ComboBoxSet { Id = 3, Item = "PNG" }));
+ FilePattern.Add((new ComboBoxSet { Id = 4, Item = "TIF" }));
+ FilePattern.Add((new ComboBoxSet { Id = 5, Item = "TIFF" }));
+ FilePattern.Add((new ComboBoxSet { Id = 6, Item = "GIF" }));
+ FilePattern.Add((new ComboBoxSet { Id = 7, Item = "BMP" }));
+ FileSelect.ItemsSource = FilePattern;
+
+ //PureVerifyの内部変数(PureVerifyDlg.env)を編集
+ EditEnvFile();
+
+ //デフォルトに前回の設定値を表示
+ ResolutionBox.Value = Properties.Settings.Default.resolutionSetting;
+ FileSelect.Text = Properties.Settings.Default.formatSetting;
+ PositionBox.Value = Properties.Settings.Default.shiftPixelSetting;
+ GradationBox.Value = Properties.Settings.Default.colorMarginSetting;
+ SmallDiffBox.Value = Properties.Settings.Default.removePointSetting;
+ VisualBox.Value = Properties.Settings.Default.shadingOffSetting;
+ workBox.Text = Properties.Settings.Default.workSpaceSetting;
+ targetBox.Text = Properties.Settings.Default.targetSetting;
+ referenceBox.Text = Properties.Settings.Default.referenceSetting;
+
+ //ドラッグ&ドロップイベントの追加
+ targetBox.AddHandler(TextBox.DragOverEvent, new DragEventHandler(textBox_PreviewDragOver), true);
+ targetBox.AddHandler(TextBox.DropEvent, new DragEventHandler(TargetBox_Drop), true);
+ referenceBox.AddHandler(TextBox.DragOverEvent, new DragEventHandler(textBox_PreviewDragOver), true);
+ referenceBox.AddHandler(TextBox.DropEvent, new DragEventHandler(RefBox_Drop), true);
+ workBox.AddHandler(TextBox.DragOverEvent, new DragEventHandler(textBox_PreviewDragOver), true);
+ workBox.AddHandler(TextBox.DropEvent, new DragEventHandler(WorkBox_Drop), true);
+ reportBox.AddHandler(TextBox.DragOverEvent, new DragEventHandler(textBox_PreviewDragOver), true);
+ reportBox.AddHandler(TextBox.DropEvent, new DragEventHandler(ReportBox_Drop), true);
+ }
+
+ //Closeボタン実行
+ private void CloseButton_Click(object sender, RoutedEventArgs e) =>
+ Close();
+
+ ///
+ /// 比較ボタンを実行する。
+ ///
+ /// 選択された対象フォルダ(ファイル)のパス
+ /// アプリケーションのメインウインドウ
+ /// 出力メニューのテキストボックス
+ /// 選択されたリファレンスフォルダ(ファイル)のパス
+ /// 選択された作業フォルダのパス
+ /// 位置ズレ許容量のパラメータ
+ /// 諧調差許容量のパラメータ
+ /// 微小差異許容量のパラメータ
+ /// 視覚的あいまい量のパラメータ
+ /// ページ範囲を指定するかどうかを示すフラグ
+ /// TIFF変換するページ範囲
+ /// 検査範囲を選択するプルダウンメニューで選択された内容の文字列
+ /// 入力されたページを表す文字列
+ /// 対象フォルダのTIFF画像を配置するフォルダのパス
+ /// リファレンスフォルダのTIFF画像を配置するフォルダのパス
+ /// PureVerify内部の作業フォルダのパス
+ /// 検版レポートのファイル名
+ /// PureVerify実行の際にレポート名の引数を加えるかどうかを示すフラグ
+ /// 検版レポートの出力先パス
+
+ private void CompareButtonClick(object sender, RoutedEventArgs e)
+ {
+ //対象フォルダのpathチェック
+ if (!Directory.Exists(targetBox.Text) && !File.Exists(targetBox.Text))
+ {
+ CustomMsgBox.Show(mainWindow, "指定されたファイルあるいはフォルダが存在しません。" +
+ "\nもう一度設定してください。", "The specified file or folder does not exist", MessageBoxButton.OK, MessageBoxImage.Information);
+ ResultConsole.Text += " 指定された対象ファイルあるいはフォルダを発見できませんでした\r\n";
+ ResultConsole.Text += "\r\n";
+ ResultConsole.ScrollToEnd();
+ Properties.Settings.Default.targetSetting = "";
+ Properties.Settings.Default.Save();
+ return;
+ }
+
+ //リファレンスファイルのpathチェック
+ if (!Directory.Exists(referenceBox.Text) && !File.Exists(referenceBox.Text))
+ {
+ CustomMsgBox.Show(mainWindow, "指定されたリファレンスファイルあるいはフォルダが存在しません。" +
+ "\nもう一度設定してください。", "The specified reference file or folder does not exist", MessageBoxButton.OK, MessageBoxImage.Information);
+ ResultConsole.Text += " 指定されたリファレンスファイルあるいはフォルダを発見できませんでした\r\n";
+ ResultConsole.Text += "\r\n";
+ ResultConsole.ScrollToEnd();
+ Properties.Settings.Default.referenceSetting = "";
+ Properties.Settings.Default.Save();
+ return;
+ }
+
+ //出力ファイルpathのチェック
+ if (!Directory.Exists(workBox.Text) && !File.Exists(workBox.Text))
+ {
+ CustomMsgBox.Show(mainWindow, "指定された作業フォルダが存在しません。" +
+ "\nもう一度設定してください。", "The work space folder does not exist", MessageBoxButton.OK, MessageBoxImage.Information);
+ ResultConsole.Text += " 指定された作業フォルダを発見できませんでした\r\n";
+ ResultConsole.Text += "\r\n";
+ ResultConsole.ScrollToEnd();
+ workBox.Text = "";
+ Properties.Settings.Default.workSpaceSetting = workBox.Text;
+ Properties.Settings.Default.Save();
+ return;
+ }
+ string workLogPath = System.IO.Path.Combine(workBox.Text, "report");
+
+ bool reportFlag = false;
+ try
+ {
+ //検版レポートの入力チェック
+ reportFlag = checkReportPath();
+ }
+ catch (Exception ex)
+ {
+ CustomMsgBox.Show(mainWindow, ex.Message + "\r\nレポート名を初期化しました。", "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning);
+ //ログ記述
+ DateTime faileTIme = DateTime.Now;
+ string logText = "[" + faileTIme + "]" + Environment.NewLine;
+ logText += "例外の生じた処理:レポート名の確認" + Environment.NewLine;
+ logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine;
+ File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText);
+ reportBox.Text = "";
+ //referenceErrorFlag = true;
+ }
+
+ //検版パラメータの取得
+ string shiftPixel = PositionBox.Text;
+ string colorMargin = GradationBox.Text;
+ string removePoint = SmallDiffBox.Text;
+ string shadingOff = VisualBox.Text;
+
+ //必要に応じてページ引数を指定
+ bool pageFlag = false;
+ string selectedPage = "";
+ if (PageRange.Text == "指定")
+ {
+ pageFlag = true;
+ selectedPage = pageBox.Text;
+ }
+
+ //TIFF画像の生成
+ ResultConsole.Text += "\r\n";
+ ResultConsole.Text += " 対象ファイルをTIFF画像に変換中\r\n";
+ ResultConsole.ScrollToEnd();
+ DoEvents();
+
+ //対象フォルダ
+ string targetTIFFPath = System.IO.Path.Combine(workBox.Text, "work", "targetTIFF");
+ if (Directory.Exists(targetTIFFPath))//指定先にTIFF用フォルダがあるか
+ {
+ Directory.Delete(targetTIFFPath, true);//あれば古いTIFF用フォルダを削除(前回作業時の生成物との混同防止)
+ }
+ Directory.CreateDirectory(targetTIFFPath);//新規でTIFF用フォルダを作成
+
+ //CSRenderの実行
+ try
+ {
+ string targetTIFFResult =
+ OutputTIFF.runCSRender(ResolutionBox.Text, "TIFF", pageFlag, selectedPage, targetBox.Text, targetTIFFPath);
+ }
+ catch (Exception ex)
+ {
+ CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning);
+ //ログ記述
+ DateTime faileTIme = DateTime.Now;
+ string logText = "[" + faileTIme + "]" + Environment.NewLine;
+ logText += "例外の生じた処理:対象PDFのTIFF画像生成" + Environment.NewLine;
+ logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine;
+ File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText);
+ //referenceErrorFlag = true;
+ }
+
+ ResultConsole.Text += " リファレンスファイルをTIFF画像に変換中\r\n";
+ ResultConsole.ScrollToEnd();
+ DoEvents();
+
+ //リファレンスフォルダ
+ string referenceTIFFPath = System.IO.Path.Combine(workBox.Text, "work", "referenceTIFF");
+ if (Directory.Exists(referenceTIFFPath))//指定先にTIFF用フォルダがあるか
+ {
+ Directory.Delete(referenceTIFFPath, true);//あれば古いTIFF用フォルダを削除(前回作業時の生成物との混同防止)
+ }
+ Directory.CreateDirectory(referenceTIFFPath);//新規でTIFF用フォルダを作成
+
+ //CSRenderの実行
+ try
+ {
+ string referenceTIFFResult =
+ OutputTIFF.runCSRender(ResolutionBox.Text, "TIFF", pageFlag, selectedPage, referenceBox.Text, referenceTIFFPath);
+ }
+ catch (Exception ex)
+ {
+ CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning);
+ //ログ記述
+ DateTime faileTIme = DateTime.Now;
+ string logText = "[" + faileTIme + "]" + Environment.NewLine;
+ logText += "例外の生じた処理:リファレンスPDFのTIFF画像生成" + Environment.NewLine;
+ logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine;
+ File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText);
+ //referenceErrorFlag = true;
+ }
+
+ ResultConsole.Text += "\r\n\r\n";
+ ResultConsole.ScrollToEnd();
+ DoEvents();
+
+ string workDir = "";
+ try
+ {
+ //PureVerifyの実行
+ workDir = CompareTIFF.runPureVerify(targetTIFFPath, referenceTIFFPath, workBox.Text
+ , shiftPixel, colorMargin, removePoint, shadingOff, reportFlag, reportBox.Text);
+ }
+ catch (Exception ex)
+ {
+ CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning);
+ //ログ記述
+ DateTime faileTIme = DateTime.Now;
+ string logText = "[" + faileTIme + "]" + Environment.NewLine;
+ logText += "例外の生じた処理:検版処理" + Environment.NewLine;
+ logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine;
+ File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText);
+ //referenceErrorFlag = true;
+ }
+
+ try
+ {
+ //レポートを出力
+ outputLog(System.IO.Path.Combine(workDir, "report"));
+ }
+ catch (Exception ex)
+ {
+ CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning);
+ //ログ記述
+ DateTime faileTIme = DateTime.Now;
+ string logText = "[" + faileTIme + "]" + Environment.NewLine;
+ logText += "例外の生じた処理:検版ログの出力" + Environment.NewLine;
+ logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine;
+ File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText);
+ //referenceErrorFlag = true;
+ }
+
+ string PDFName = "";
+ try
+ {
+ //レポート名を取得
+ if (reportBox.Text != "")
+ {
+ PDFName = reportBox.Text;
+ }
+ else
+ {
+ PDFName = CompareTIFF.getReportName(workDir);
+ }
+ }
+ catch (Exception ex)
+ {
+ CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning);
+ //ログ記述
+ DateTime faileTIme = DateTime.Now;
+ string logText = "[" + faileTIme + "]" + Environment.NewLine;
+ logText += "例外の生じた処理:レポート名の取得" + Environment.NewLine;
+ logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine;
+ File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText);
+ //referenceErrorFlag = true;
+ }
+
+ //指定先にレポートを移動
+ CompareTIFF.moveReport(workBox.Text, workDir);
+
+ //レポートのパスを表示
+ ResultConsole.Text += " 検版レポートのパス:";
+ ResultConsole.Text += System.IO.Path.Combine(workBox.Text, "report", PDFName);
+ ResultConsole.Text += "\r\n";
+ if (reportBox.Text == "")
+ {
+ reportBox.Text = System.IO.Path.Combine(workBox.Text, "report", PDFName);
+ }
+
+ //パラメータを次回初期値用に保存
+ Properties.Settings.Default.resolutionSetting = ResolutionBox.Value;
+ Properties.Settings.Default.formatSetting = FileSelect.Text;
+ Properties.Settings.Default.shiftPixelSetting = PositionBox.Value;
+ Properties.Settings.Default.colorMarginSetting = GradationBox.Value;
+ Properties.Settings.Default.removePointSetting = SmallDiffBox.Value;
+ Properties.Settings.Default.shadingOffSetting = VisualBox.Value;
+ Properties.Settings.Default.workSpaceSetting = workBox.Text;
+ Properties.Settings.Default.targetSetting = targetBox.Text;
+ Properties.Settings.Default.referenceSetting = referenceBox.Text;
+ Properties.Settings.Default.Save();
+ }
+
+ ///
+ /// UIに検版結果を出力する。
+ ///
+ /// 作業フォルダ内のlogファイルを全て格納する配列
+ /// 作成されたlogファイルの名称
+ /// logファイルを読み取るリーダー
+ /// リーダーで読み取った行の文字列
+ /// リーダーがその時点で読み込んでいる行数
+ private void outputLog(string workDir)
+ {
+ //logファイルを読み取り(1行ずつ)
+ string[] reportFiles = System.IO.Directory.GetFiles(workDir, "*.log", System.IO.SearchOption.TopDirectoryOnly);
+ string logfileName = reportFiles[0];
+ StreamReader logString = new StreamReader(logfileName, Encoding.GetEncoding("Shift-JIS"));//Shift-JISでエンコーディング
+ string tranceString = "";
+ int lineCount = 0;
+ //ファイルから読み取った結果をUIに出力
+ while (logString.EndOfStream == false)
+ {
+ tranceString = logString.ReadLine();
+ lineCount++;
+ //logファイルにある処理日時表示を除去
+ if (lineCount == 14 || lineCount == 19 || lineCount == 36 || lineCount == 37 || lineCount == 38 || lineCount == 39)
+ {
+ tranceString = tranceString.Substring(0, 66);
+ }
+ if (lineCount > 13 && lineCount < 40)//必要なところだけをUIに記述
+ {
+ ResultConsole.Text += tranceString + "\r\n";
+ ResultConsole.ScrollToEnd();
+ DoEvents();
+ }
+ }
+ logString.Close();
+
+ }
+
+ ///
+ /// TIFF画像化を実行する
+ ///
+ /// ページ範囲の指定があるかどうかを示すフラグ
+ /// 入力されたページ数
+ /// CSRenderの処理出力文
+ ///
+ private void TIFFButtonClick(object sender, RoutedEventArgs e)
+ {
+ //出力メニューにメッセージを出力
+ ResultConsole.Text += "<変換開始>\r\n";
+ ResultConsole.Text += " PDFを" + FileSelect.Text + "に変換します\r\n";
+ ResultConsole.Text += "\r\n";
+ DoEvents();
+
+ //必要に応じてページ引数を指定
+ bool pageFlag = false;
+ string selectedPage = "";
+ if (PageRange.Text == "指定")
+ {
+ pageFlag = true;
+ selectedPage = pageBox.Text;
+ }
+
+ //対象フォルダのpathが存在するかチェック
+ if (!Directory.Exists(targetBox.Text) && !File.Exists(targetBox.Text))
+ {
+ CustomMsgBox.Show(mainWindow, "指定されたファイルあるいはフォルダが存在しません。" +
+ "\nもう一度TIFF出力する対象を設定してください。", "The specified file or folder does not exist", MessageBoxButton.OK, MessageBoxImage.Information);
+ ResultConsole.Text += " 指定された対象ファイルあるいはフォルダを発見できませんでした\r\n";
+ ResultConsole.Text += "<変換中止>\r\n";
+ Properties.Settings.Default.targetSetting = "";
+ Properties.Settings.Default.Save();
+ return;
+ }
+
+ //出力フォルダのpathチェック
+ if (workBox.Text != "")
+ {
+ if (!Directory.Exists(workBox.Text) && !File.Exists(workBox.Text))//pathのチェック
+ {
+ CustomMsgBox.Show(mainWindow, "指定された作業フォルダが存在しません。" +
+ "\nもう一度設定してください。", "The specified reference file or folder does not exist", MessageBoxButton.OK, MessageBoxImage.Information);
+ ResultConsole.Text += " 指定された作業フォルダを発見できませんでした\r\n";
+ ResultConsole.Text += "<変換中止>\r\n";
+ workBox.Text = "";
+ Properties.Settings.Default.workSpaceSetting = "";
+ Properties.Settings.Default.Save();
+ return;
+ }
+ }
+
+ //CSRenderの実行
+ string TIFFresult =
+ OutputTIFF.runCSRender(ResolutionBox.Text, FileSelect.Text, pageFlag, selectedPage, targetBox.Text, workBox.Text);
+
+ ResultConsole.Text += TIFFresult;
+ ResultConsole.Text += "\r\n<変換終了>\r\n";
+ ResultConsole.ScrollToEnd();
+
+ //パラメータを次回初期値用に保存
+ Properties.Settings.Default.resolutionSetting = ResolutionBox.Value;
+ Properties.Settings.Default.formatSetting = FileSelect.Text;
+ Properties.Settings.Default.workSpaceSetting = workBox.Text;
+ Properties.Settings.Default.targetSetting = targetBox.Text;
+ Properties.Settings.Default.Save();
+ }
+
+ //メニュを明示的に更新する
+ private void DoEvents()
+ {
+ DispatcherFrame frame = new DispatcherFrame();
+ var callback = new DispatcherOperationCallback(ExitFrames);
+ Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, callback, frame);
+ Dispatcher.PushFrame(frame);
+ }
+
+ //実行中のオブジェクトを読み込み
+ private object ExitFrames(object obj)
+ {
+ ((DispatcherFrame)obj).Continue = false;
+ return null;
+ }
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/OutputTiff.cs b/Code/NetFramework4_6_2/CSRender/OutputTiff.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6896071952adb57523a251494f20b21f19b8eb13
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/OutputTiff.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Controls.Primitives;
+using System.Text.RegularExpressions;
+using System.Diagnostics;
+using System.IO;
+
+namespace CSRender
+{
+ class OutputTIFF
+ {
+ public static string runCSRender(string resolutionNum, string outputFile,
+ bool pageFlag, string filePage, string targetPath, string workPath)
+ {
+ //実行用コンソール呼び出し
+ ProcessStartInfo processStartInfo = new ProcessStartInfo();
+ string appPath = System.Reflection.Assembly.GetExecutingAssembly().Location; //モジュールのパスを取得
+ string appDirectory = appPath.Substring(0, appPath.LastIndexOf(@"\") + 1); //モジュールの存在するディレクトリを取得
+ processStartInfo.FileName = System.IO.Path.Combine(appDirectory, "CSRender.Data", "CSRender.exe");
+ processStartInfo.CreateNoWindow = true; // コマンドプロンプトを非表示
+ processStartInfo.UseShellExecute = false; // シェル機能オフ
+ processStartInfo.RedirectStandardOutput = true;//標準出力をリダイレクト
+
+ //解像度の引数
+ processStartInfo.Arguments = "/D ";
+ processStartInfo.Arguments += resolutionNum;
+
+ //出力ファイル形式の引数
+ processStartInfo.Arguments += " /";
+ processStartInfo.Arguments += outputFile;
+ processStartInfo.Arguments += " ";
+
+ //必要に応じてページ引数を指定
+ if (pageFlag == true)
+ {
+ processStartInfo.Arguments += "/P \"";
+ processStartInfo.Arguments += filePage;
+ processStartInfo.Arguments += "\" ";
+ }
+
+ //指定ファイル
+ processStartInfo.Arguments += "/F ";
+ processStartInfo.Arguments += targetPath;
+
+ //出力フォルダ
+ if (workPath != "")
+ {
+ processStartInfo.Arguments += " /O ";
+ processStartInfo.Arguments += workPath;
+ }
+
+ //CSRender.exeを実行
+ Process process = Process.Start(processStartInfo);
+ string resuletString = process.StandardOutput.ReadToEnd();
+ process.WaitForExit();
+ process.Close();
+
+ return resuletString;
+ }
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/PageComboBox.cs b/Code/NetFramework4_6_2/CSRender/PageComboBox.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2f3f5dd025d8ea0301b8466df80f2b70c35be1bf
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PageComboBox.cs
@@ -0,0 +1,129 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Controls.Primitives;
+using System.Text.RegularExpressions;
+
+namespace CSRender
+{
+ public partial class MainWindow : Window
+ {
+ //コンボボックスの要素
+ public class ComboBoxSet
+ {
+ public int Id { get; set; }
+ public string Item { get; set; }
+ }
+
+ //クリックしたときに全体を選択
+ private void PageBox_GotFocusSelectAll(object sender, RoutedEventArgs e)
+ {
+ TextBox box = (TextBox)sender;
+ //box.SelectAll();
+ this.Dispatcher.InvokeAsync(() => { Task.Delay(10); box.SelectAll(); });
+ }
+
+ //ページ指定のプルダウンに応じてテキストボックスを活性化/非活性化
+ private void PageRange_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ var SelectedItem = (ComboBoxSet)PageRange.SelectedItem;
+ if (SelectedItem == null) return;
+ string PageType = (string)SelectedItem.Item;
+ if (PageType == "指定")
+ {
+ pageBox.IsEnabled = true;
+ pageLabel.IsEnabled = true;
+ }
+ else
+ {
+ pageBox.IsEnabled = false;
+ pageLabel.IsEnabled = false;
+ }
+ }
+
+ //数字とハイフン、カンマ以外を無効化
+ private void PageBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
+ {
+ var Pagebox = (TextBox)sender;
+ string str = Pagebox.Text;//文字列
+ var inputPage = e.Text;//入力された文字
+
+ //正規表現で入力文字の判定、数字とピリオド、カンマならtrue
+ bool PageCheck = new System.Text.RegularExpressions.Regex("[0-9,-]").IsMatch(inputPage);
+
+ //入力文字が数値とカンマ、ハイフン以外だったら無効
+ if (PageCheck == false)
+ {
+ e.Handled = true;//無効
+ return;//終了
+ }
+
+ //キャレット(カーソル)位置が先頭(0)であるときの、ハイフン入力は無効
+ if (Pagebox.CaretIndex == 0 && inputPage == "-") { e.Handled = true; return; }
+ //キャレット(カーソル)位置が先頭(0)であるときの、カンマ入力は無効
+ if (Pagebox.CaretIndex == 0 && inputPage == ",") { e.Handled = true; return; }
+ }
+
+ //誤ったハイフン・カンマ、数字の入力を修正
+ private void PageBox_LostFocus(object sender, RoutedEventArgs e)
+ {
+ //ハイフン、カンマの削除
+
+ var PageBox = (TextBox)sender;
+ string inputText = PageBox.Text;
+
+ // -,や,- は入力ミスなので後の文字だけ削除
+ inputText = inputText.Replace("-,", "-");
+ inputText = inputText.Replace(",-", ",");
+
+ //先頭か末尾にあった場合は削除
+ if (inputText.StartsWith(",") || inputText.EndsWith(","))
+ {
+ inputText = inputText.TrimStart(',');
+ inputText = inputText.TrimEnd(',');
+ }
+ if (inputText.StartsWith("-") || inputText.EndsWith("-"))
+ {
+ inputText = inputText.TrimStart('-');
+ inputText = inputText.TrimEnd('-');
+ }
+ //先頭が0の場合は1に修正
+ if (inputText.StartsWith("0"))
+ {
+ inputText = inputText.TrimStart('0');
+ inputText = "1" + inputText;
+ }
+
+ PageBox.Text = inputText;
+ }
+
+ private void PageBox_PreviewExecuted(object sender, ExecutedRoutedEventArgs e)
+ {
+ //貼り付け無効
+ if (e.Command == ApplicationCommands.Paste)
+ {
+ e.Handled = true;
+ }
+ }
+
+ //スペースキーが押されたときは、それを無効にする
+ private void PageBox_PreviewKeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.Key == Key.Space) e.Handled = true;
+ }
+
+ }
+
+
+}
diff --git a/Code/NetFramework4_6_2/CSRender/Properties/AssemblyInfo.cs b/Code/NetFramework4_6_2/CSRender/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..45f89b3efe7d06c228a5e57666087a6b918b2710
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
+// アセンブリに関連付けられている情報を変更するには、
+// これらの属性値を変更してください。
+[assembly: AssemblyTitle("CSRender")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CSRender")]
+[assembly: AssemblyCopyright("Copyright © 2021")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから
+// 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、
+// その型の ComVisible 属性を true に設定してください。
+[assembly: ComVisible(false)]
+
+//ローカライズ可能なアプリケーションのビルドを開始するには、
+//.csproj ファイルの CultureYouAreCodingWith を
+// 内部で設定します。たとえば、
+//ソース ファイルで英語を使用している場合、 を en-US に設定します。次に、
+//下の NeutralResourceLanguage 属性のコメントを解除します。下の行の "en-US" を
+//プロジェクト ファイルの UICulture 設定と一致するよう更新します。
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //テーマ固有のリソース ディクショナリが置かれている場所
+ //(リソースがページ、
+ //またはアプリケーション リソース ディクショナリに見つからない場合に使用されます)
+ ResourceDictionaryLocation.SourceAssembly //汎用リソース ディクショナリが置かれている場所
+ //(リソースがページ、
+ //アプリケーション、またはいずれのテーマ固有のリソース ディクショナリにも見つからない場合に使用されます)
+)]
+
+
+// アセンブリのバージョン情報は次の 4 つの値で構成されています:
+//
+// メジャー バージョン
+// マイナー バージョン
+// ビルド番号
+// Revision
+//
+// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます
+// 既定値にすることができます:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Code/NetFramework4_6_2/CSRender/Properties/Resources.Designer.cs b/Code/NetFramework4_6_2/CSRender/Properties/Resources.Designer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..789a32ea2b37dc9c1397a733731a6a37463df38b
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// このコードはツールによって生成されました。
+// ランタイム バージョン:4.0.30319.42000
+//
+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
+// コードが再生成されるときに損失したりします
+//
+//------------------------------------------------------------------------------
+
+namespace CSRender.Properties
+{
+
+
+ ///
+ /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。
+ ///
+ // このクラスは StronglyTypedResourceBuilder クラスによって ResGen
+ // または Visual Studio のようなツールを使用して自動生成されました。
+ // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
+ // ResGen を実行し直すか、または VS プロジェクトをリビルドします。
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// このクラスで使用されるキャッシュされた ResourceManager インスタンスを返します。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CSRender.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// すべてについて、現在のスレッドの CurrentUICulture プロパティをオーバーライドします
+ /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/Properties/Resources.resx b/Code/NetFramework4_6_2/CSRender/Properties/Resources.resx
new file mode 100644
index 0000000000000000000000000000000000000000..ffecec851ab4deae63e81647b4655c7d1fe6dfd7
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Code/NetFramework4_6_2/CSRender/Properties/Settings.Designer.cs b/Code/NetFramework4_6_2/CSRender/Properties/Settings.Designer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f713c438eb8383eea839900e22e5bd87abef9ddb
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/Properties/Settings.Designer.cs
@@ -0,0 +1,134 @@
+//------------------------------------------------------------------------------
+//
+// このコードはツールによって生成されました。
+// ランタイム バージョン:4.0.30319.42000
+//
+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
+// コードが再生成されるときに損失したりします。
+//
+//------------------------------------------------------------------------------
+
+namespace CSRender.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("75")]
+ public decimal resolutionSetting {
+ get {
+ return ((decimal)(this["resolutionSetting"]));
+ }
+ set {
+ this["resolutionSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string formatSetting {
+ get {
+ return ((string)(this["formatSetting"]));
+ }
+ set {
+ this["formatSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("2")]
+ public decimal shiftPixelSetting {
+ get {
+ return ((decimal)(this["shiftPixelSetting"]));
+ }
+ set {
+ this["shiftPixelSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("60")]
+ public decimal colorMarginSetting {
+ get {
+ return ((decimal)(this["colorMarginSetting"]));
+ }
+ set {
+ this["colorMarginSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("8")]
+ public decimal removePointSetting {
+ get {
+ return ((decimal)(this["removePointSetting"]));
+ }
+ set {
+ this["removePointSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("5")]
+ public decimal shadingOffSetting {
+ get {
+ return ((decimal)(this["shadingOffSetting"]));
+ }
+ set {
+ this["shadingOffSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string workSpaceSetting {
+ get {
+ return ((string)(this["workSpaceSetting"]));
+ }
+ set {
+ this["workSpaceSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string referenceSetting {
+ get {
+ return ((string)(this["referenceSetting"]));
+ }
+ set {
+ this["referenceSetting"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string targetSetting {
+ get {
+ return ((string)(this["targetSetting"]));
+ }
+ set {
+ this["targetSetting"] = value;
+ }
+ }
+ }
+}
diff --git a/Code/NetFramework4_6_2/CSRender/Properties/Settings.settings b/Code/NetFramework4_6_2/CSRender/Properties/Settings.settings
new file mode 100644
index 0000000000000000000000000000000000000000..d9439ab53667a07a93ea913392d29c97fb5440cc
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/Properties/Settings.settings
@@ -0,0 +1,33 @@
+
+
+
+
+
+ 75
+
+
+
+
+
+ 2
+
+
+ 60
+
+
+ 8
+
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_Custom.txt b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_Custom.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1716298a06516aceaa722230dba38e1278f1dca9
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_Custom.txt
@@ -0,0 +1,29 @@
+// 䂷点
+**ShiftPixel: "0"
+
+// K}[W
+**GradationMargin: "30"
+
+// Ǘ_
+**RemovePoint: "5"
+
+// ω
+**ShadingOff: "2"
+
+//}`vZX[h(:0/蓮:1)
+**MultiProcessMode:"0"
+
+// }`vZX(蓮̏ꍇ)
+**MultiProcessValue: "0"
+
+//oCir(1:fR[hŔrj
+**ComparisonWithoutDecode:"0"
+
+//(1:\)
+**IsViewProcessingTime:"1"
+
+// ōُo̓t@C^Cv(0:]/1:1bitTiff)
+**OutPutDiffFileType:"1"
+
+// Ǘ_̌JԂ(0:ftHgJԂj
+**RemovePointRepeatCount:"0"
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_H.txt b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_H.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b0c97e1674a738f0c3e9175c602961561eb6a1b4
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_H.txt
@@ -0,0 +1,29 @@
+// 䂷点
+**ShiftPixel: "1"
+
+// K}[W
+**GradationMargin: "30"
+
+// Ǘ_
+**RemovePoint: "5"
+
+// ω
+**ShadingOff: "0"
+
+//}`vZX[h(:0/蓮:1)
+**MultiProcessMode:"0"
+
+// }`vZX(蓮̏ꍇ)
+**MultiProcessValue: "0"
+
+//oCir(1:fR[hŔrj
+**ComparisonWithoutDecode:"0"
+
+//(1:\)
+**IsViewProcessingTime:"1"
+
+// ōُo̓t@C^Cv(0:]/1:1bitTiff)
+**OutPutDiffFileType:"1"
+
+// Ǘ_̌JԂ(0:ftHgJԂj
+**RemovePointRepeatCount:"0"
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_L.txt b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_L.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ba7958c73170644940fda65b94e30e0fca0ac8e1
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_L.txt
@@ -0,0 +1,29 @@
+// 䂷点
+**ShiftPixel: "2"
+
+// K}[W
+**GradationMargin: "80"
+
+// Ǘ_
+**RemovePoint: "8"
+
+// ω
+**ShadingOff: "5"
+
+//}`vZX[h(:0/蓮:1)
+**MultiProcessMode:"0"
+
+// }`vZX(蓮̏ꍇ)
+**MultiProcessValue: "0"
+
+//oCir(1:fR[hŔrj
+**ComparisonWithoutDecode:"0"
+
+//(1:\)
+**IsViewProcessingTime:"1"
+
+// ōُo̓t@C^Cv(0:]/1:1bitTiff)
+**OutPutDiffFileType:"1"
+
+// Ǘ_̌JԂ(0:ftHgJԂj
+**RemovePointRepeatCount:"1"
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_M.txt b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_M.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cc59e2827398db58176a77e2dd4871513928ee73
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/DtDiffSetUp_M.txt
@@ -0,0 +1,29 @@
+// 䂷点
+**ShiftPixel: "2"
+
+// K}[W
+**GradationMargin: "60"
+
+// Ǘ_
+**RemovePoint: "8"
+
+// ω
+**ShadingOff: "5"
+
+//}`vZX[h(:0/蓮:1)
+**MultiProcessMode:"0"
+
+// }`vZX(蓮̏ꍇ)
+**MultiProcessValue: "0"
+
+//oCir(1:fR[hŔrj
+**ComparisonWithoutDecode:"0"
+
+//(1:\)
+**IsViewProcessingTime:"1"
+
+// ōُo̓t@C^Cv(0:]/1:1bitTiff)
+**OutPutDiffFileType:"1"
+
+// Ǘ_̌JԂ(0:ftHgJԂj
+**RemovePointRepeatCount:"0"
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureReportSetup.en.xml b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureReportSetup.en.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7d05392109babe32a46fa9daf033de8e73b679fb
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureReportSetup.en.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ PAGE
+
+
+
+
+ PureVerify
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inspection result
+ Number of difference
+
+ Difference page
+ Number of inspection page
+ Inspection time
+ Report created date
+ Report file name
+ Number of part of output
+
+
+ PureVerify
+ Version
+ Computer name
+ EquiosCenter path
+ PureVerify path
+ Inspection sensitivity
+ Position tolerance
+ Gradient tolerance
+ Smallness
+ Perceptual tolerance
+ Inspection page
+ Inspection image resolution
+ Mark distance
+
+
+
+ Miscellaneous
+ Other information
+
+
+
+
+ PureVerify Report
+
+
+
+
+
+
+
+
+
+
+
+
+ List of image files which have been converted resolution
+
+ RESAMPLE SIZE
+ MAX TIFF SIZE
+
+
+ File name
+ Original size
+ Resampled size
+
+
+
+ List of image files without diff points
+
+
+
+ List of image files which missing reference or target
+
+ File name
+ Missed file
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureReportSetup.ja.xml b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureReportSetup.ja.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2023f5d98cae88eb1eb49268dc450d47a36c3c55
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureReportSetup.ja.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ PAGE
+
+
+
+
+ PureVerify
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 検査結果
+ 差異数
+
+ 差異ページ
+ 検査画像数
+ 検査時間
+ レポート作成日
+ レポートファイル名
+ 分割数
+
+
+ PUREベリファイ
+ バージョン
+ マシン名
+ EquiosCenterパス
+ PureVerifyパス
+ 検版感度
+ 位置ズレ許容量
+ 階調差許容量
+ 微少差異許容量
+ 視覚的あいまい量
+ 画像解像度
+ マーク距離
+
+
+
+
+
+
+ PureVerify Report
+
+
+
+
+
+
+
+
+
+
+
+
+ 解像度が変換された画像ファイルリスト
+
+ RESAMPLE SIZE
+ MAX TIFF SIZE
+
+
+ ファイル名
+ 元のサイズ
+ 変換後のサイズ
+
+
+
+
+ レファレンスまたは対象がなかったファイル画像リスト
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureVerifyDlg.env b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureVerifyDlg.env
new file mode 100644
index 0000000000000000000000000000000000000000..ccbba545b6baa3f0aa438875ed2bead8ba63d612
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureVerifyDlg.env
@@ -0,0 +1,10 @@
+**EquiosCenter: "C:\Users\EB030221\Desktop\CSRender\PureVerify.Data\EquiosCenter"
+**WorkDirRoot: "C:\Users\EB030221\Desktop\CSRender\PureVerify.Data\RipVerify"
+**InspQuality: "3"
+**MarkDistance: "50"
+**ReportEncodeType: "2"
+**WndPosLeft: "348"
+**WndPosTop: "125"
+**WndPosRight: "933"
+**WndPosBottom: "556"
+**ShowOKList: "1"
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureVerifyMainSetUp.txt b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureVerifyMainSetUp.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5ab6637e885c1a60974a6302b2c1ce86a08280de
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/PureVerifyMainSetUp.txt
@@ -0,0 +1,38 @@
+//////////////// User Configuration ////////////////
+
+// Password of the Inspection Report
+**PDFREPORT_PASSWORD:""
+
+//////////////// Advanced Setting ///////////////////////
+// Number of divisions of the Inspection Report
+**PDFREPORT_SPLIT_PAGENUM:"32"
+
+// Maximum number of threads
+**MakeThreadNums: "0"
+
+//Log output setting: 0:None, 2:Standard
+**LogLevel:"2"
+
+////////////////////////// lj //////////////////////////////
+// hO`FbN̗L
+**VerifyDongleCheck:"0"
+// hOV[YID
+//**VerifyDongleSeriesID:"0x20000"
+**VerifyDongleSeriesID:"0x2000"
+
+// ƃtH_폜
+// 1 : ƃtH_폜 / 0 : ƃtH_폜Ȃ
+**IS_DELETE_WORKDIR:"1"
+
+// Inspection Report compression type image
+// Default value of compression type image is JPEG
+// 0:ZLIB , 1:LZW , 2:JPEG , 3:JPEG2000 , 4:RUN_LENGTH
+**CompressType:"2"
+
+// Maximum size of Tiff image (MB)
+**MAX_TIFF_SIZE:"2048"
+
+// Size of Tiff image after resampling (MB)
+**RESAMPLE_SIZE:"1024"
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/equios.jpg b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/equios.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6278b17c11a7bf03603e4d620d1141cf32bd437f
Binary files /dev/null and b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/setup/equios.jpg differ
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/PureReportSetup.en.xml b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/PureReportSetup.en.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7d05392109babe32a46fa9daf033de8e73b679fb
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/PureReportSetup.en.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ PAGE
+
+
+
+
+ PureVerify
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inspection result
+ Number of difference
+
+ Difference page
+ Number of inspection page
+ Inspection time
+ Report created date
+ Report file name
+ Number of part of output
+
+
+ PureVerify
+ Version
+ Computer name
+ EquiosCenter path
+ PureVerify path
+ Inspection sensitivity
+ Position tolerance
+ Gradient tolerance
+ Smallness
+ Perceptual tolerance
+ Inspection page
+ Inspection image resolution
+ Mark distance
+
+
+
+ Miscellaneous
+ Other information
+
+
+
+
+ PureVerify Report
+
+
+
+
+
+
+
+
+
+
+
+
+ List of image files which have been converted resolution
+
+ RESAMPLE SIZE
+ MAX TIFF SIZE
+
+
+ File name
+ Original size
+ Resampled size
+
+
+
+ List of image files without diff points
+
+
+
+ List of image files which missing reference or target
+
+ File name
+ Missed file
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/PureReportSetup.ja.xml b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/PureReportSetup.ja.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2023f5d98cae88eb1eb49268dc450d47a36c3c55
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/PureReportSetup.ja.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ PAGE
+
+
+
+
+ PureVerify
+Report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 検査結果
+ 差異数
+
+ 差異ページ
+ 検査画像数
+ 検査時間
+ レポート作成日
+ レポートファイル名
+ 分割数
+
+
+ PUREベリファイ
+ バージョン
+ マシン名
+ EquiosCenterパス
+ PureVerifyパス
+ 検版感度
+ 位置ズレ許容量
+ 階調差許容量
+ 微少差異許容量
+ 視覚的あいまい量
+ 画像解像度
+ マーク距離
+
+
+
+
+
+
+ PureVerify Report
+
+
+
+
+
+
+
+
+
+
+
+
+ 解像度が変換された画像ファイルリスト
+
+ RESAMPLE SIZE
+ MAX TIFF SIZE
+
+
+ ファイル名
+ 元のサイズ
+ 変換後のサイズ
+
+
+
+
+ レファレンスまたは対象がなかったファイル画像リスト
+
+
+
+
+
diff --git a/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/equios.jpg b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/equios.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6278b17c11a7bf03603e4d620d1141cf32bd437f
Binary files /dev/null and b/Code/NetFramework4_6_2/CSRender/PureVerify.Data/RipVerify/work/OUT_INFO/equios.jpg differ
diff --git a/Code/NetFramework4_6_2/CSRender/packages.config b/Code/NetFramework4_6_2/CSRender/packages.config
new file mode 100644
index 0000000000000000000000000000000000000000..0096df49cfc1e30ef12acc0b4784aa345539b391
--- /dev/null
+++ b/Code/NetFramework4_6_2/CSRender/packages.config
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file