Moved from Github

This commit is contained in:
tomse 2023-12-21 00:42:08 +01:00
parent 28c20f77ba
commit 08def71c74
305 changed files with 186949 additions and 2 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
PDFWorkflowManager/PDFWorkflowManager/obj
PDFWorkflowManager/PDFWorkflowManager/bin
PDFWorkflowManager/Setup/Debug
PDFWorkflowManager/Setup/Release

Binary file not shown.

View File

@ -0,0 +1,39 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.33214.272
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PDF Workflow Manager", "PDFWorkflowManager\PDF Workflow Manager.csproj", "{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}"
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Setup", "Setup\Setup.vdproj", "{E4C5F971-3D5B-4645-98E7-2737AE92E82A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Debug|x64.ActiveCfg = Debug|x64
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Debug|x64.Build.0 = Debug|x64
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Release|Any CPU.Build.0 = Release|Any CPU
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Release|x64.ActiveCfg = Release|x64
{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}.Release|x64.Build.0 = Release|x64
{E4C5F971-3D5B-4645-98E7-2737AE92E82A}.Debug|Any CPU.ActiveCfg = Debug
{E4C5F971-3D5B-4645-98E7-2737AE92E82A}.Debug|x64.ActiveCfg = Debug
{E4C5F971-3D5B-4645-98E7-2737AE92E82A}.Debug|x64.Build.0 = Debug
{E4C5F971-3D5B-4645-98E7-2737AE92E82A}.Release|Any CPU.ActiveCfg = Release
{E4C5F971-3D5B-4645-98E7-2737AE92E82A}.Release|x64.ActiveCfg = Release
{E4C5F971-3D5B-4645-98E7-2737AE92E82A}.Release|x64.Build.0 = Release
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {057144D2-A9D9-4540-82A3-7FB6D1F72DAD}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MakeManual.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<userSettings>
<MakeManual.Properties.Settings>
<setting name="ScanTailor" serializeAs="String">
<value>C:\Program Files\ScanTailor Advanced\scantailor.exe</value>
</setting>
<setting name="OrigsDir" serializeAs="String">
<value>.\origs</value>
</setting>
<setting name="WorkDir" serializeAs="String">
<value>.\work</value>
</setting>
<setting name="WorkOutDir" serializeAs="String">
<value>.\work\out</value>
</setting>
<setting name="TempDir" serializeAs="String">
<value>.\temp</value>
</setting>
<setting name="GhostScript" serializeAs="String">
<value>gswin64c.exe</value>
</setting>
<setting name="PDFtk" serializeAs="String">
<value>pdftk.exe</value>
</setting>
<setting name="TesserAct" serializeAs="String">
<value>tesseract.exe</value>
</setting>
<setting name="PostProcessor" serializeAs="String">
<value>Tomse</value>
</setting>
<setting name="PDFMetaAuthor" serializeAs="String">
<value>Processed by Tomse @ http://retro-commodore.eu</value>
</setting>
<setting name="Banner" serializeAs="String">
<value>1</value>
</setting>
</MakeManual.Properties.Settings>
</userSettings>
</configuration>

View File

@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Topic 1</TITLE>
<META content="text/html; charset=Windows-1252" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 11.00.10570.1001"><LINK rel=stylesheet
href="_template.css"></HEAD>
<BODY>
<DIV id=nsbanner>
<DIV id=bannerrow1>
<TABLE class=bannerparthead>
<TBODY>
<TR id=hdr>
<TD class=runninghead noWrap>RCEU Workflow
Manager</TD></TR></TBODY></TABLE></DIV>
<DIV id=titlerow>
<H1 class=dtH1>Pre-requisites</H1></DIV></DIV>
<DIV id=nstext><BR>
<P>RCEU Workflow Manager is a partial wrapper for other programs.</P>
<P>Required for full functionality are these free programs:</P>
<P><A
href="http://https://ghostscript.com/releases/gsdnld.html">GhostScript</A>, <A
href="http://https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/">PDFToolKit
Server</A>, <A
href="http://https://github.com/UB-Mannheim/tesseract/wiki">TesserAct-OCR</A>,
<A
href="http://https://github.com/4lex4/scantailor-advanced/tags">ScanTailor</A>.</P>
<P>&nbsp;</P>
<P>You either need to have the binaries in your path environment, or go to
settings and navigate each to it's executable.</P>
<P>&nbsp;</P>
<P>&nbsp;</P></DIV>
<DIV id=nstext>
<HR>
</DIV>
<DIV class=footer>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copyright © 2023 <A
href="https://www.retro-commodore.eu" target=_blank>Retro Commodore EU</A>. All
Rights Reserved. </P></DIV></BODY></HTML>

View File

@ -0,0 +1,44 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Topic 2</TITLE>
<META content="text/html; charset=Windows-1252" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 11.00.10570.1001"><LINK rel=stylesheet
href="_template.css"></HEAD>
<BODY>
<DIV id=nsbanner>
<DIV id=bannerrow1>
<TABLE class=bannerparthead>
<TBODY>
<TR id=hdr>
<TD class=runninghead noWrap>RCEU Workflow
Manager</TD></TR></TBODY></TABLE></DIV>
<DIV id=titlerow>
<H1 class=dtH1>Intro</H1></DIV></DIV>
<DIV id=nstext><BR>
<P>What is RCEU Workflow Manager?</P>
<P>&nbsp;</P>
<P>It is a tool, which helps creating PDF files for <A
href="https://retro-commodore.eu">https://retro-commodore.eu</A>, but can be
used for your own needs.</P>
<P>&nbsp;</P>
<P>The workflow is like this:</P>
<P>After you've scanned, you put your original files in an origs directory, </P>
<P>this directory will be copied to a work directory - we never work on the
original scans, so the origs is our safekeeping directory.</P>
<P>Now it's time to process your images with ScanTailor.</P>
<P>After you've created your outputfiles using ScanTailor, you can fill out the
metadata fields, and save these to the root of the project.</P>
<P>Convert the files, will OCR and make the&nbsp;images into single PDF
files.</P>
<P>Make PDF will then combine all the single PDF files and save it with it's
OCRed pages.</P>
<P>&nbsp;</P>
<P>Thats it, you're done and have a nice PDF product.</P>
<P>&nbsp;</P>
<P>&nbsp;</P></DIV>
<DIV id=nstext>
<HR>
</DIV>
<DIV class=footer>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copyright © 2023 <A
href="https://www.retro-commodore.eu" target=_blank>Retro Commodore EU</A>. All
Rights Reserved. </P></DIV></BODY></HTML>

View File

@ -0,0 +1,53 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Topic 3</TITLE>
<META content="text/html; charset=Windows-1252" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 11.00.10570.1001"><LINK rel=stylesheet
href="_template.css"></HEAD>
<BODY>
<DIV id=nsbanner>
<DIV id=bannerrow1>
<TABLE class=bannerparthead>
<TBODY>
<TR id=hdr>
<TD class=runninghead noWrap>RCEU Workflow
Manager</TD></TR></TBODY></TABLE></DIV>
<DIV id=titlerow>
<H1 class=dtH1>Preparation</H1></DIV></DIV>
<DIV id=nstext><BR>
<P>To the more depth going procedure to make the process a success:</P>
<P>When you scan, you should know a few basics.</P>
<P>Scanning in 600dpi make black/white text only look good, in 300dpi the pixels
can make the text feel jagged. Remember, you can always scale down, but
upscaling requires magic like AI, but it's always the best to have high
resolution scans rather than guesswork from a computer.</P>
<P>Stay away from lossy formats like jpg and gif. TIFF and PNG are both very
good options. TIFF has several choices of compression, of these are CCITT.6 (G4
Fax) for black and white images, and LZW for the rest -indexed, grayscal and
color, the best choices. There&nbsp;is the &nbsp;JBIG which compresses
Black/White better, but it usually also makes the PDF viewer vastly slower.</P>
<P>Unfortunately LZW is not usable in PDF/A. PNG can be a good choice as well,
though it is somewhat slower to open in programs. Sticking to free tools GIMP
has no problems working with these formats.</P>
<P>&nbsp;</P>
<P>RCEU Make Manual only support TIF files with the 3 letter TIF extension, the
4 letter TIFF extension, PNG and other formats&nbsp;are currently not supported.
So make sure to either convert to TIF or rename the extension depending on your
output.</P>
<P>&nbsp;</P>
<P>So, lets start preparing your project directory, lets call this MyProject. So
if we use D:\ManualWork as a root directory for all our projects, the example
directory would be D:\ManualWork\MyProject.</P>
<P>Recommended is to have your original scans in origs, so the full directory
would be D:\ManualWork\MyProject\origs. "origs" can be set in the settings in
case you want to rename it, so can the other work directories, but lets continue
with the recommended namings. ScanTailor defaults to output to an "out"
directory from it's project dir.</P>
<P>&nbsp;</P>
<P>&nbsp;</P></DIV>
<DIV id=nstext>
<HR>
</DIV>
<DIV class=footer>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copyright © 2023 <A
href="https://www.retro-commodore.eu" target=_blank>Retro Commodore EU</A>. All
Rights Reserved. </P></DIV></BODY></HTML>

View File

@ -0,0 +1,89 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Getting Started</TITLE>
<META content="text/html; charset=Windows-1252" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 11.00.10570.1001"><LINK rel=stylesheet
href="_template.css"></HEAD>
<BODY>
<DIV id=nsbanner>
<DIV id=bannerrow1>
<TABLE class=bannerparthead>
<TBODY>
<TR id=hdr>
<TD class=runninghead noWrap>RCEU Workflow
Manager</TD></TR></TBODY></TABLE></DIV>
<DIV id=titlerow>
<H1 class=dtH1>Getting Started</H1></DIV></DIV>
<DIV id=nstext><BR>
<P>Start by opening the project dir D:\ManualWork\MyProject, if you've
configured correctly and have an origs dir with one or more tif files, you
should see the first image in the Work tab.</P>
<P>&nbsp;</P>
<P>This will open up the rest of the work field.</P>
<P>Clicking "Prepare Work Dir" will create a directory called "work" and the
files in "origs" will be copied into this folder. If a textfile
"run_simplex_sorting_script.txt"&nbsp;exists in the root of the project dir, the
checkbox "Simplex scanned" will be checked.</P>
<P>Scanning documents on a simplex scanner scans the odd pages from low to
high&nbsp;1,3,5,7... and then you flip the stack around scanning the even pages
from high to low&nbsp;...8,6,4,2. </P>
<P>Checking the "Simplex scanned" checkbox will copy the files from the "origs"
folder, sort the files properly so they are&nbsp;ordered into the proper
sequence&nbsp;1,2,3,4,5,6,7,8. Make note we only copy from the origs folder, we
don't write to this folder keeping the originals as is.</P>
<P>You need to check the "Simplex scanned" checkbox before clicking on the
"Prepare Work Dir".</P>
<P>If the "Simplex scanned"&nbsp;is checked, a check for even files in the work
directory will also be made, the "Prepare Work Dir" turns red if the file count
isn't even. Sometimes document scanners can grab one or more pages. This isn't
foolproof if the scanner grabs even amount of pages from front and back run.</P>
<P>&nbsp;</P>
<P>Clicking on the "Run ScanTailor" will copy the workdir path to the clipboard
and open ScanTailor, you can use the clipboard to paste the workpath when
creating a new project.</P>
<P>Do what you need to do in ScanTailor (using ScanTailor isn't part of this
help guide).</P>
<P>&nbsp;</P>
<P>Now you can do some post work to all the output files if you want/need to do
this.</P>
<P>&nbsp;</P>
<P>For RCEU products fill out the PDF properties, make sure you select either a
single language or multiple in case the manual or book is multilingual.</P>
<P>Title, Publisher and (non english) language will automatically be added to
the filename.</P>
<P>Clicking "Calc" outside the page count will fetch the amount of pages for
you.</P>
<P>Clicking "Calc" in time spent, will output the amount of minutes calculated
by the timestamp of the first and last file in the origs dir, and the amount of
time RCEU Workflow Manager has had it's project open.</P>
<P>The "Metadata file" info doesn't do anything to the output.</P>
<P>it only saves all the info to a textfile which is used for Retro Commodore's
website.</P>
<P>Well actually, the filename textbox is the only field that is being used, to
output the filename of the files generated.</P>
<P>&nbsp;</P>
<P>Selecting "Normal Order" and clicking "Convert Files" will take all the files
in their natural order and convert to OCR'ed PDF pages.</P>
<P>Selecting "4,1,2,3 Order" and clicking "Convert Files" - If you've scanned
magazines or booklets where you've removed staples from the spine, the pages
scanned would be Front, Back, Side 2 and Side 3 for 1 paper, Front, Back, 3, 6,
5, 4, 2, 1 for 2 papers. You would then need to split the pages in ScanTailor.
Selecting this will make sure the</P>
<P>magazines or booklets have their pages sorted in the correctorder before OCR
into PDF files.</P>
<P>Selecting Normal or 4,1,2,3 needs to be chosen before "Convert Files".</P>
<P>&nbsp;</P>
<P>A4 Banner/A5 Banner/None: This will add either an A4, A5 or none banners in
the end of the PDF file. This choice needs to be set before "Make PDF"</P>
<P>"Make PDF" will grab all PDFs and gather them into one PDF file. A textfile
with all the text from the OCR'ed PDF will also be output.</P>
<P>&nbsp;</P>
<P>You're done.</P>
<P>&nbsp;</P>
<P>
<HR>
<P></P></DIV>
<DIV class=footer>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copyright © 2023 <A
href="https://www.retro-commodore.eu" target=_blank>Retro Commodore EU</A>. All
Rights Reserved. </P></DIV></BODY></HTML>

View File

@ -0,0 +1,56 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Settings</TITLE>
<META content="text/html; charset=Windows-1252" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 11.00.10570.1001"><LINK rel=stylesheet
href="_template.css"></HEAD>
<BODY>
<DIV id=nsbanner>
<DIV id=bannerrow1>
<TABLE class=bannerparthead>
<TBODY>
<TR id=hdr>
<TD class=runninghead noWrap>RCEU Workflow
Manager</TD></TR></TBODY></TABLE></DIV>
<DIV id=titlerow>
<H1 class=dtH1>Settings</H1></DIV></DIV>
<DIV id=nstext><BR>
<P>User section:</P>
<P>In User, type in your name or handle, this is only used for the metadata
file.</P>
<P>&nbsp;</P>
<P>Tools section:</P>
<P>make sure your tools are in your path environment, or browse to them using
the buttons.</P>
<P>RCEU Workflow Manager uses these tools, pointing to different tools will make
unwanted results.</P>
<P>Links have been made available for easy download of the required tools.</P>
<P>&nbsp;</P>
<P>Work Directories section:</P>
<P>These are directories inside your projects directory, changing these to full
paths will give you undesired results.</P>
<P>Origs: This is where your original scans (*.tif) should be located before
starting the workflow.</P>
<P>Work: This is the directory where the originals have been copied to and
sorted if chosen, this is also the directory that should be used for
ScanTailor.</P>
<P>ScanTailor Out: this is the output directory of ScanTailor, default: out
(inside the work dir) so "work\out"</P>
<P>Temp: This is the temporary directory which RCEU Workflow Manager uses for
outputting single PDF files. This directory isn't automatically deleted (yet),
but can be manually deleted once you're satisfied with your product.</P>
<P>&nbsp;</P>
<P>PDF Metadata section:</P>
<P>Writing something here will add that text to the Author field of the PDF
file.</P>
<P>&nbsp;</P>
<P>Save Config</P>
<P>Will make sure your settings are remembered.</P>
<P>&nbsp;</P>
<P>&nbsp;</P></DIV>
<DIV id=nstext>
<HR>
</DIV>
<DIV class=footer>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copyright © 2023 <A
href="https://www.retro-commodore.eu" target=_blank>Retro Commodore EU</A>. All
Rights Reserved. </P></DIV></BODY></HTML>

View File

@ -0,0 +1,102 @@

namespace PDFWorkflowManager
{
partial class LanguagesForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
// Remove control box
this.ControlBox = false;
this.checkedListBoxLanguages = new System.Windows.Forms.CheckedListBox();
this.txtLanguageSelection = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.btnClear = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// checkedListBoxLanguages
//
this.checkedListBoxLanguages.CheckOnClick = true;
this.checkedListBoxLanguages.FormattingEnabled = true;
this.checkedListBoxLanguages.Location = new System.Drawing.Point(12, 63);
this.checkedListBoxLanguages.Name = "checkedListBoxLanguages";
this.checkedListBoxLanguages.Size = new System.Drawing.Size(187, 304);
this.checkedListBoxLanguages.TabIndex = 0;
this.checkedListBoxLanguages.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.checkedListBoxLanguages_ItemCheck);
//
// txtLanguageSelection
//
this.txtLanguageSelection.Location = new System.Drawing.Point(12, 9);
this.txtLanguageSelection.Name = "txtLanguageSelection";
this.txtLanguageSelection.Size = new System.Drawing.Size(187, 20);
this.txtLanguageSelection.TabIndex = 1;
//
// button1
//
this.button1.Location = new System.Drawing.Point(124, 35);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 2;
this.button1.Text = "Accept";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// btnClear
//
this.btnClear.Location = new System.Drawing.Point(12, 35);
this.btnClear.Name = "btnClear";
this.btnClear.Size = new System.Drawing.Size(75, 23);
this.btnClear.TabIndex = 3;
this.btnClear.Text = "Clear";
this.btnClear.UseVisualStyleBackColor = true;
this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
//
// LanguagesForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(208, 375);
this.Controls.Add(this.btnClear);
this.Controls.Add(this.button1);
this.Controls.Add(this.txtLanguageSelection);
this.Controls.Add(this.checkedListBoxLanguages);
this.Name = "LanguagesForm";
this.Text = "Select Languages";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.CheckedListBox checkedListBoxLanguages;
private System.Windows.Forms.TextBox txtLanguageSelection;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button btnClear;
}
}

View File

@ -0,0 +1,88 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PDFWorkflowManager
{
public partial class LanguagesForm : Form
{
Dictionary<string, string> trainData;
public LanguagesForm(Dictionary<string, string> trainDataDict, string selectedLanguages)
{
InitializeComponent();
trainData = trainDataDict;
// Populate list
foreach (KeyValuePair<string, string> entry in trainData)
{
checkedListBoxLanguages.Items.Add(entry.Key);
}
// check any needed languages
string[] nameArray = selectedLanguages.Split(new string[] { "; " }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < nameArray.Length; i++)
{
int index = checkedListBoxLanguages.FindStringExact(nameArray[i]);
if (index != -1)
{
checkedListBoxLanguages.SetItemChecked(index, true);
}
}
}
public string resultText
{
get { return txtLanguageSelection.Text; }
}
private void checkedListBoxLanguages_ItemCheck(object sender, ItemCheckEventArgs e)
{
// Get the text of the item being checked or unchecked
string itemText = checkedListBoxLanguages.Items[e.Index].ToString();
// If the item is being checked, add it to the text box
if (e.NewValue == CheckState.Checked)
{
// Append the key value to the text box, followed by a semicolon and a space
txtLanguageSelection.Text += itemText + "; ";
}
// If the item is being unchecked, remove it from the text box
else
{
// Find the position of the key value in the text box
int pos = txtLanguageSelection.Text.IndexOf(itemText);
// Remove the key value and the semicolon and space that follow it
txtLanguageSelection.Text = txtLanguageSelection.Text.Remove(pos, itemText.Length + 2);
}
}
private void btnClear_Click(object sender, EventArgs e)
{
for (int i = 0; i < checkedListBoxLanguages.Items.Count; i++)
{
checkedListBoxLanguages.SetItemChecked(i, false);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (checkedListBoxLanguages.CheckedItems.Count > 0)
{
this.Close();
}
else
{
MessageBox.Show("You must have atleast 1 language selected!", "Select atleast 1 language", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,210 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>
<metadata name="cmbBanner.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="watcherOut.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>248, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAIB8AAAEAIAAkEAAAFgAAACgAAAAgAAAAPgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AVyIAJlUiAHJVIgCvVSIA2VUi
APBVIgD+VSIA61UiANdVIgCvViIAcVEjABb///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AViEAPlUiAMJVIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VCMASf///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AUyYAIlUiALNVIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9UIwBJ////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFQhAD1VIgDpVSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1QjAEn///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBVIwBgVSIA+1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VCMASf//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AViEAPlUi
APlVIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1Ui
AP9UIwBJ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFUj
ACRVIgDtVSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/VSIA/1QjAEn///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8AVSIAtlUiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAO9WIgCnViMAblUh
AFRWIQBWViIAd1UiALxVIgD+VCMASf///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AFYjAEFVIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAPZVIQB7VSsADP//
/wD///8A////AP///wD///8A////AFciACZVIgAe////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8AVSIAxVUiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgDkVyQAMv//
/wD///8A////AP///wD///8A////AP///wD///8A////AAAA/0UAAP93AAD/dwAA/3cAAP93AAD/dwAA
/3cAAP93AAD/dwAA/3cAAP93AAD/XVUkACpVIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA8lch
AC////8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAAD/kwAA//8AAP//AAD//wAA
//8AAP//AAD//wAA//8AAP//AAD//wAA/+oAAP8rViIAd1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgBy////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAAAP+TAAD//wAA
//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP/vAAD/Mv///wBVIgCyVSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/VSIA6VUrAAb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAA
/5MAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/8QAA/zb///8A////AFUiANxVIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9WIwCb////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8AAAD/kwAA//8AAP//AAD//wAA//8AAP//AAD//wAA//UAAP8+////AP///wD///8AVSIA9FUi
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UhAGz///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wAAAP+KAAD/7gAA/+4AAP/uAAD/7gAA/+4AAP/pAAD/Qv///wD///8A////AP//
/wBVIgD8VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VCMAWP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AFUiAPRVIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9WIQBr////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8AVSMAk1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/FQh
AFX///8A////AP///wD///8AVSIA3FUiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1YjAJv///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wBVIwCTVSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/VSIA+VUiAEv///8A////AP///wBVIgCyVSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA6VUr
AAb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFUjAJNVIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA9lYjAEH///8A////AFYiAHdVIgD/VSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/ViIAcf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AVSMAk1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA9VYhAD7///8AVSQAKlUiAP9VIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgDyVyEAL////wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wBVIwCTVSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA8VciADX///8AVSIAxVUi
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIwDlVSMAM////wD///8A////AP///wD///8A////AP//
/wD///8A////AFYjADtVIwBmVSMAZlUjAGZVIwBmVSMAZlUjAGZVIwBmVSMAZlUjAGZVIwBmViIAU///
/wBWIwBBVSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD3VSEAe1UrAAz///8A////AP//
/wD///8A////AP///wBVIQAnUiEAH////wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wBVIgC2VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA71Yi
AKdWIwBuVCMAWFYhAFZWIgB3VSIAvFUiAP5UIwBJ////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AFUjACRVIgDtVSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1QjAEn///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AFYhAD5VIgD5VSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VCMASf///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFUjAGBVIgD7VSIA/1Ui
AP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9UIwBJ////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFQh
AD1VIgDqVSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1Qj
AEn///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AFckACNVIgC1VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/VCMASf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wBUJABAVSIAw1UiAP9VIgD/VSIA/1UiAP9VIgD/VSIA/1Ui
AP9VIgD/VSIA/1UiAP9UIwBJ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AUyAAKFYhAHRVIwCxVSIA21Ui
APFVIgD/VSIA61UiANhVIQCwVSIAclEjABb///8A////AP///wD///8A////AP///wD///8A////AP//
/wD///8A////AP/AB///AAf//AAH//gAB//wAAf/4AAH/8AAB//AAAf/gAfn/4Af8AAAP/AAAH/wAQB/
8AMA//AHAP/wDwD///8A//APAP/wBwB/8AMAf/ABAD/wAIAf8ACAB+f/wAAH/8AAB//gAAf/8AAH//gA
B//8AAf//wAH///AB/8=
</value>
</data>
</root>

View File

@ -0,0 +1,184 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\WiX.3.11.2\build\wix.props" Condition="Exists('..\packages\WiX.3.11.2\build\wix.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1957F2AD-ACB5-4938-B2BA-3D2C365BBAF6}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>PDFWorkflowManager</RootNamespace>
<AssemblyName>PDF Workflow Manager</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Magick.NET-Q8-AnyCPU, Version=12.3.0.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
<HintPath>..\packages\Magick.NET-Q8-AnyCPU.12.3.0\lib\netstandard20\Magick.NET-Q8-AnyCPU.dll</HintPath>
</Reference>
<Reference Include="Magick.NET.Core, Version=12.3.0.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
<HintPath>..\packages\Magick.NET.Core.12.3.0\lib\netstandard20\Magick.NET.Core.dll</HintPath>
</Reference>
<Reference Include="Magick.NET.SystemDrawing, Version=6.1.0.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
<HintPath>..\packages\Magick.NET.SystemDrawing.6.1.4\lib\net462\Magick.NET.SystemDrawing.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WindowsAPICodePack-Core.1.1.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WindowsAPICodePack-Shell.1.1.1\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="LanguagesForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LanguagesForm.Designer.cs">
<DependentUpon>LanguagesForm.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SettingsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SettingsForm.Designer.cs">
<DependentUpon>SettingsForm.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="LanguagesForm.resx">
<DependentUpon>LanguagesForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="SettingsForm.resx">
<DependentUpon>SettingsForm.cs</DependentUpon>
</EmbeddedResource>
<None Include="banner_a4.pdf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="banner_a5.pdf">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Magick.NET-Q8-AnyCPU.12.3.0\build\netstandard20\Magick.NET-Q8-AnyCPU.targets" Condition="Exists('..\packages\Magick.NET-Q8-AnyCPU.12.3.0\build\netstandard20\Magick.NET-Q8-AnyCPU.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Magick.NET-Q8-AnyCPU.12.3.0\build\netstandard20\Magick.NET-Q8-AnyCPU.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Magick.NET-Q8-AnyCPU.12.3.0\build\netstandard20\Magick.NET-Q8-AnyCPU.targets'))" />
<Error Condition="!Exists('..\packages\WiX.3.11.2\build\wix.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\WiX.3.11.2\build\wix.props'))" />
</Target>
</Project>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,19 @@
using System;
using System.Windows.Forms;
namespace PDFWorkflowManager
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}

View File

@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("PDF Workflow Manager")]
[assembly: AssemblyDescription("An Application to assist in making a better workflow when creating PDF manuals/books etc.")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Retro-Commodore")]
[assembly: AssemblyProduct("PDFWorkflowManager")]
[assembly: AssemblyCopyright("Copyright © 2023 Retro Commodore EU")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1957f2ad-acb5-4938-b2ba-3d2c365bbaf6")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace PDFWorkflowManager.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.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() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PDFWorkflowManager.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,158 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace PDFWorkflowManager.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.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("C:\\Program Files\\ScanTailor Advanced\\scantailor.exe")]
public string ScanTailor {
get {
return ((string)(this["ScanTailor"]));
}
set {
this["ScanTailor"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute(".\\origs")]
public string OrigsDir {
get {
return ((string)(this["OrigsDir"]));
}
set {
this["OrigsDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute(".\\work")]
public string WorkDir {
get {
return ((string)(this["WorkDir"]));
}
set {
this["WorkDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute(".\\work\\out")]
public string WorkOutDir {
get {
return ((string)(this["WorkOutDir"]));
}
set {
this["WorkOutDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute(".\\temp")]
public string TempDir {
get {
return ((string)(this["TempDir"]));
}
set {
this["TempDir"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("gswin64c.exe")]
public string GhostScript {
get {
return ((string)(this["GhostScript"]));
}
set {
this["GhostScript"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("pdftk.exe")]
public string PDFtk {
get {
return ((string)(this["PDFtk"]));
}
set {
this["PDFtk"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("tesseract.exe")]
public string TesserAct {
get {
return ((string)(this["TesserAct"]));
}
set {
this["TesserAct"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Tomse")]
public string PostProcessor {
get {
return ((string)(this["PostProcessor"]));
}
set {
this["PostProcessor"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Processed by Tomse @ http://retro-commodore.eu")]
public string PDFMetaAuthor {
get {
return ((string)(this["PDFMetaAuthor"]));
}
set {
this["PDFMetaAuthor"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1")]
public int Banner {
get {
return ((int)(this["Banner"]));
}
set {
this["Banner"] = value;
}
}
}
}

View File

@ -0,0 +1,39 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MakeManual.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="ScanTailor" Type="System.String" Scope="User">
<Value Profile="(Default)">C:\Program Files\ScanTailor Advanced\scantailor.exe</Value>
</Setting>
<Setting Name="OrigsDir" Type="System.String" Scope="User">
<Value Profile="(Default)">.\origs</Value>
</Setting>
<Setting Name="WorkDir" Type="System.String" Scope="User">
<Value Profile="(Default)">.\work</Value>
</Setting>
<Setting Name="WorkOutDir" Type="System.String" Scope="User">
<Value Profile="(Default)">.\work\out</Value>
</Setting>
<Setting Name="TempDir" Type="System.String" Scope="User">
<Value Profile="(Default)">.\temp</Value>
</Setting>
<Setting Name="GhostScript" Type="System.String" Scope="User">
<Value Profile="(Default)">gswin64c.exe</Value>
</Setting>
<Setting Name="PDFtk" Type="System.String" Scope="User">
<Value Profile="(Default)">pdftk.exe</Value>
</Setting>
<Setting Name="TesserAct" Type="System.String" Scope="User">
<Value Profile="(Default)">tesseract.exe</Value>
</Setting>
<Setting Name="PostProcessor" Type="System.String" Scope="User">
<Value Profile="(Default)">Tomse</Value>
</Setting>
<Setting Name="PDFMetaAuthor" Type="System.String" Scope="User">
<Value Profile="(Default)">Processed by Tomse @ http://retro-commodore.eu</Value>
</Setting>
<Setting Name="Banner" Type="System.Int32" Scope="User">
<Value Profile="(Default)">1</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -0,0 +1,475 @@

namespace PDFWorkflowManager
{
partial class SettingsForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.txtTempDir = new System.Windows.Forms.TextBox();
this.btnScantailor = new System.Windows.Forms.Button();
this.btnGhostScript = new System.Windows.Forms.Button();
this.btnPdfTk = new System.Windows.Forms.Button();
this.txtOrigsDir = new System.Windows.Forms.TextBox();
this.txtScanTailor = new System.Windows.Forms.TextBox();
this.txtGhostScript = new System.Windows.Forms.TextBox();
this.txtPdfTk = new System.Windows.Forms.TextBox();
this.txtTesserAct = new System.Windows.Forms.TextBox();
this.btnTesserAct = new System.Windows.Forms.Button();
this.txtPostProcessor = new System.Windows.Forms.TextBox();
this.btnSaveConfig = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.linkLabel2 = new System.Windows.Forms.LinkLabel();
this.linkLabel3 = new System.Windows.Forms.LinkLabel();
this.linkLabel5 = new System.Windows.Forms.LinkLabel();
this.txtWorkDir = new System.Windows.Forms.TextBox();
this.txtWorkOutDir = new System.Windows.Forms.TextBox();
this.statusStrip = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.txtPDFMetaAuthor = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label6 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.label2 = new System.Windows.Forms.Label();
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.label7 = new System.Windows.Forms.Label();
this.cmbBanner = new System.Windows.Forms.ComboBox();
this.statusStrip.SuspendLayout();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox4.SuspendLayout();
this.groupBox5.SuspendLayout();
this.SuspendLayout();
//
// txtTempDir
//
this.txtTempDir.Location = new System.Drawing.Point(6, 99);
this.txtTempDir.Name = "txtTempDir";
this.txtTempDir.Size = new System.Drawing.Size(208, 20);
this.txtTempDir.TabIndex = 0;
//
// btnScantailor
//
this.btnScantailor.Location = new System.Drawing.Point(220, 17);
this.btnScantailor.Name = "btnScantailor";
this.btnScantailor.Size = new System.Drawing.Size(84, 23);
this.btnScantailor.TabIndex = 3;
this.btnScantailor.Text = "ScanTailor";
this.btnScantailor.UseVisualStyleBackColor = true;
this.btnScantailor.Click += new System.EventHandler(this.btnScantailor_Click);
//
// btnGhostScript
//
this.btnGhostScript.Location = new System.Drawing.Point(220, 43);
this.btnGhostScript.Name = "btnGhostScript";
this.btnGhostScript.Size = new System.Drawing.Size(84, 23);
this.btnGhostScript.TabIndex = 4;
this.btnGhostScript.Text = "Ghostscript";
this.btnGhostScript.UseVisualStyleBackColor = true;
this.btnGhostScript.Click += new System.EventHandler(this.btnGhostScript_Click);
//
// btnPdfTk
//
this.btnPdfTk.Location = new System.Drawing.Point(220, 69);
this.btnPdfTk.Name = "btnPdfTk";
this.btnPdfTk.Size = new System.Drawing.Size(84, 23);
this.btnPdfTk.TabIndex = 5;
this.btnPdfTk.Text = "PDF Tool Kit";
this.btnPdfTk.UseVisualStyleBackColor = true;
this.btnPdfTk.Click += new System.EventHandler(this.btnPdfTk_Click);
//
// txtOrigsDir
//
this.txtOrigsDir.Location = new System.Drawing.Point(6, 21);
this.txtOrigsDir.Name = "txtOrigsDir";
this.txtOrigsDir.Size = new System.Drawing.Size(208, 20);
this.txtOrigsDir.TabIndex = 6;
//
// txtScanTailor
//
this.txtScanTailor.Location = new System.Drawing.Point(6, 19);
this.txtScanTailor.Name = "txtScanTailor";
this.txtScanTailor.Size = new System.Drawing.Size(208, 20);
this.txtScanTailor.TabIndex = 7;
//
// txtGhostScript
//
this.txtGhostScript.Location = new System.Drawing.Point(6, 45);
this.txtGhostScript.Name = "txtGhostScript";
this.txtGhostScript.Size = new System.Drawing.Size(208, 20);
this.txtGhostScript.TabIndex = 8;
//
// txtPdfTk
//
this.txtPdfTk.Location = new System.Drawing.Point(6, 71);
this.txtPdfTk.Name = "txtPdfTk";
this.txtPdfTk.Size = new System.Drawing.Size(208, 20);
this.txtPdfTk.TabIndex = 9;
//
// txtTesserAct
//
this.txtTesserAct.Location = new System.Drawing.Point(6, 97);
this.txtTesserAct.Name = "txtTesserAct";
this.txtTesserAct.Size = new System.Drawing.Size(208, 20);
this.txtTesserAct.TabIndex = 13;
//
// btnTesserAct
//
this.btnTesserAct.Location = new System.Drawing.Point(220, 95);
this.btnTesserAct.Name = "btnTesserAct";
this.btnTesserAct.Size = new System.Drawing.Size(84, 23);
this.btnTesserAct.TabIndex = 12;
this.btnTesserAct.Text = "TesserAct";
this.btnTesserAct.UseVisualStyleBackColor = true;
this.btnTesserAct.Click += new System.EventHandler(this.btnTesserAct_Click);
//
// txtPostProcessor
//
this.txtPostProcessor.Location = new System.Drawing.Point(6, 19);
this.txtPostProcessor.Name = "txtPostProcessor";
this.txtPostProcessor.Size = new System.Drawing.Size(208, 20);
this.txtPostProcessor.TabIndex = 15;
//
// btnSaveConfig
//
this.btnSaveConfig.Location = new System.Drawing.Point(469, 364);
this.btnSaveConfig.Name = "btnSaveConfig";
this.btnSaveConfig.Size = new System.Drawing.Size(134, 79);
this.btnSaveConfig.TabIndex = 14;
this.btnSaveConfig.Text = "Save Config";
this.btnSaveConfig.UseVisualStyleBackColor = true;
this.btnSaveConfig.Click += new System.EventHandler(this.btnSaveConfig_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(220, 22);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(157, 13);
this.label1.TabIndex = 16;
this.label1.Text = "Post processor nick/name (you)";
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Location = new System.Drawing.Point(402, 88);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(270, 13);
this.linkLabel1.TabIndex = 17;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "https://github.com/4lex4/scantailor-advanced/releases";
//
// linkLabel2
//
this.linkLabel2.AutoSize = true;
this.linkLabel2.Location = new System.Drawing.Point(402, 114);
this.linkLabel2.Name = "linkLabel2";
this.linkLabel2.Size = new System.Drawing.Size(219, 13);
this.linkLabel2.TabIndex = 18;
this.linkLabel2.TabStop = true;
this.linkLabel2.Text = "https://ghostscript.com/releases/gsdnld.html";
//
// linkLabel3
//
this.linkLabel3.AutoSize = true;
this.linkLabel3.Location = new System.Drawing.Point(402, 140);
this.linkLabel3.Name = "linkLabel3";
this.linkLabel3.Size = new System.Drawing.Size(220, 13);
this.linkLabel3.TabIndex = 19;
this.linkLabel3.TabStop = true;
this.linkLabel3.Text = "https://www.pdflabs.com/tools/pdftk-server/";
//
// linkLabel5
//
this.linkLabel5.AutoSize = true;
this.linkLabel5.Location = new System.Drawing.Point(402, 166);
this.linkLabel5.Name = "linkLabel5";
this.linkLabel5.Size = new System.Drawing.Size(238, 13);
this.linkLabel5.TabIndex = 21;
this.linkLabel5.TabStop = true;
this.linkLabel5.Tag = "";
this.linkLabel5.Text = "https://github.com/UB-Mannheim/tesseract/wiki";
//
// txtWorkDir
//
this.txtWorkDir.Location = new System.Drawing.Point(6, 47);
this.txtWorkDir.Name = "txtWorkDir";
this.txtWorkDir.Size = new System.Drawing.Size(208, 20);
this.txtWorkDir.TabIndex = 22;
//
// txtWorkOutDir
//
this.txtWorkOutDir.Location = new System.Drawing.Point(6, 73);
this.txtWorkOutDir.Name = "txtWorkOutDir";
this.txtWorkOutDir.Size = new System.Drawing.Size(208, 20);
this.txtWorkOutDir.TabIndex = 24;
//
// statusStrip
//
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel1,
this.statusLabel});
this.statusStrip.Location = new System.Drawing.Point(0, 454);
this.statusStrip.Name = "statusStrip";
this.statusStrip.Size = new System.Drawing.Size(698, 22);
this.statusStrip.TabIndex = 26;
this.statusStrip.Text = "statusStrip1";
//
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(42, 17);
this.toolStripStatusLabel1.Text = "Status:";
//
// statusLabel
//
this.statusLabel.Name = "statusLabel";
this.statusLabel.Size = new System.Drawing.Size(0, 17);
//
// txtPDFMetaAuthor
//
this.txtPDFMetaAuthor.Location = new System.Drawing.Point(6, 19);
this.txtPDFMetaAuthor.Name = "txtPDFMetaAuthor";
this.txtPDFMetaAuthor.Size = new System.Drawing.Size(208, 20);
this.txtPDFMetaAuthor.TabIndex = 30;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.txtTempDir);
this.groupBox1.Controls.Add(this.txtOrigsDir);
this.groupBox1.Controls.Add(this.txtWorkDir);
this.groupBox1.Controls.Add(this.txtWorkOutDir);
this.groupBox1.Location = new System.Drawing.Point(12, 201);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(384, 129);
this.groupBox1.TabIndex = 35;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Work Directories";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(217, 102);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(77, 13);
this.label6.TabIndex = 34;
this.label6.Text = "Temp directory";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(220, 76);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(121, 13);
this.label5.TabIndex = 33;
this.label5.Text = "ScanTailor Out directory";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(220, 50);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(76, 13);
this.label4.TabIndex = 32;
this.label4.Text = "Work directory";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(220, 24);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(74, 13);
this.label3.TabIndex = 31;
this.label3.Text = "Origs directory";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.btnTesserAct);
this.groupBox2.Controls.Add(this.btnScantailor);
this.groupBox2.Controls.Add(this.btnGhostScript);
this.groupBox2.Controls.Add(this.btnPdfTk);
this.groupBox2.Controls.Add(this.txtScanTailor);
this.groupBox2.Controls.Add(this.txtGhostScript);
this.groupBox2.Controls.Add(this.txtPdfTk);
this.groupBox2.Controls.Add(this.txtTesserAct);
this.groupBox2.Location = new System.Drawing.Point(12, 66);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(384, 129);
this.groupBox2.TabIndex = 36;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Tools";
//
// groupBox3
//
this.groupBox3.Controls.Add(this.label1);
this.groupBox3.Controls.Add(this.txtPostProcessor);
this.groupBox3.Location = new System.Drawing.Point(12, 12);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(384, 48);
this.groupBox3.TabIndex = 37;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "User";
//
// groupBox4
//
this.groupBox4.Controls.Add(this.label2);
this.groupBox4.Controls.Add(this.txtPDFMetaAuthor);
this.groupBox4.Location = new System.Drawing.Point(12, 336);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(384, 49);
this.groupBox4.TabIndex = 38;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "PDF Metadata";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(217, 22);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(38, 13);
this.label2.TabIndex = 17;
this.label2.Text = "Author";
//
// groupBox5
//
this.groupBox5.Controls.Add(this.label7);
this.groupBox5.Controls.Add(this.cmbBanner);
this.groupBox5.Location = new System.Drawing.Point(12, 392);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(384, 51);
this.groupBox5.TabIndex = 39;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "Output";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(217, 23);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(41, 13);
this.label7.TabIndex = 31;
this.label7.Text = "Banner";
//
// cmbBanner
//
this.cmbBanner.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbBanner.FormattingEnabled = true;
this.cmbBanner.Items.AddRange(new object[] {
"A4",
"A5",
"None"});
this.cmbBanner.Location = new System.Drawing.Point(6, 20);
this.cmbBanner.Name = "cmbBanner";
this.cmbBanner.Size = new System.Drawing.Size(208, 21);
this.cmbBanner.TabIndex = 0;
//
// SettingsForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(698, 476);
this.Controls.Add(this.groupBox5);
this.Controls.Add(this.groupBox4);
this.Controls.Add(this.groupBox3);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.statusStrip);
this.Controls.Add(this.linkLabel5);
this.Controls.Add(this.linkLabel3);
this.Controls.Add(this.linkLabel2);
this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.btnSaveConfig);
this.Name = "SettingsForm";
this.Tag = "";
this.Text = "Settings";
this.statusStrip.ResumeLayout(false);
this.statusStrip.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.groupBox5.ResumeLayout(false);
this.groupBox5.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox txtTempDir;
private System.Windows.Forms.Button btnScantailor;
private System.Windows.Forms.Button btnGhostScript;
private System.Windows.Forms.Button btnPdfTk;
private System.Windows.Forms.TextBox txtOrigsDir;
private System.Windows.Forms.TextBox txtScanTailor;
private System.Windows.Forms.TextBox txtGhostScript;
private System.Windows.Forms.TextBox txtPdfTk;
private System.Windows.Forms.TextBox txtTesserAct;
private System.Windows.Forms.Button btnTesserAct;
private System.Windows.Forms.TextBox txtPostProcessor;
private System.Windows.Forms.Button btnSaveConfig;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.LinkLabel linkLabel1;
private System.Windows.Forms.LinkLabel linkLabel2;
private System.Windows.Forms.LinkLabel linkLabel3;
private System.Windows.Forms.LinkLabel linkLabel5;
private System.Windows.Forms.TextBox txtWorkDir;
private System.Windows.Forms.TextBox txtWorkOutDir;
private System.Windows.Forms.StatusStrip statusStrip;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
private System.Windows.Forms.ToolStripStatusLabel statusLabel;
private System.Windows.Forms.TextBox txtPDFMetaAuthor;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.GroupBox groupBox4;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.GroupBox groupBox5;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.ComboBox cmbBanner;
}
}

View File

@ -0,0 +1,152 @@
using Microsoft.WindowsAPICodePack.Dialogs;
using System;
using System.Windows.Forms;
namespace PDFWorkflowManager
{
public partial class SettingsForm : Form
{
public SettingsForm()
{
InitializeComponent();
txtScanTailor.Text = Properties.Settings.Default.ScanTailor;
txtWorkDir.Text = Properties.Settings.Default.WorkDir;
txtOrigsDir.Text = Properties.Settings.Default.OrigsDir;
txtWorkOutDir.Text = Properties.Settings.Default.WorkOutDir;
txtTempDir.Text = Properties.Settings.Default.TempDir;
txtGhostScript.Text = Properties.Settings.Default.GhostScript;
txtPdfTk.Text = Properties.Settings.Default.PDFtk;
txtTesserAct.Text = Properties.Settings.Default.TesserAct;
txtPostProcessor.Text = Properties.Settings.Default.PostProcessor;
txtPDFMetaAuthor.Text = Properties.Settings.Default.PDFMetaAuthor;
cmbBanner.SelectedIndex = Properties.Settings.Default.Banner;
}
private void btnScantailor_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "Browse for ScanTailor";
fileDialog.Filter = "ScanTailor|scantailor.exe";
fileDialog.FilterIndex = 1;
if (fileDialog.ShowDialog() == DialogResult.OK)
{
txtScanTailor.Text = fileDialog.FileName;
Properties.Settings.Default.ScanTailor = txtScanTailor.Text;
}
}
private void btnTempDir_Click(object sender, EventArgs e)
{
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.RestoreDirectory = true;
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
txtTempDir.Text = dialog.FileName;
Properties.Settings.Default.TempDir = txtTempDir.Text;
}
}
private void btnGhostScript_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "Browse for Ghostscript";
fileDialog.Filter = "Ghostscript|gswin64c.exe";
fileDialog.FilterIndex = 1;
if (fileDialog.ShowDialog() == DialogResult.OK)
{
txtGhostScript.Text = fileDialog.FileName;
Properties.Settings.Default.GhostScript = txtGhostScript.Text;
}
}
private void btnPdfTk_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "Browse for PDF Toolkit Server";
fileDialog.Filter = "PDFTK|pdftk.exe";
fileDialog.FilterIndex = 1;
if (fileDialog.ShowDialog() == DialogResult.OK)
{
txtPdfTk.Text = fileDialog.FileName;
Properties.Settings.Default.PDFtk = txtPdfTk.Text;
}
}
private void btnTesserAct_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "Browse for Tesseract";
fileDialog.Filter = "TesserAct|tesseract.exe";
fileDialog.FilterIndex = 1;
if (fileDialog.ShowDialog() == DialogResult.OK)
{
txtTesserAct.Text = fileDialog.FileName;
Properties.Settings.Default.TesserAct = txtTesserAct.Text;
}
}
private void btnOrigsDir_Click(object sender, EventArgs e)
{
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.RestoreDirectory = true;
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
txtOrigsDir.Text = dialog.FileName;
Properties.Settings.Default.OrigsDir = txtOrigsDir.Text;
}
}
private void btnWorkDir_Click(object sender, EventArgs e)
{
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.RestoreDirectory = true;
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
txtWorkDir.Text = dialog.FileName;
Properties.Settings.Default.WorkDir = txtWorkDir.Text;
}
}
private void btnWorkOutDir_Click(object sender, EventArgs e)
{
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.RestoreDirectory = true;
dialog.IsFolderPicker = true;
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
txtWorkOutDir.Text = dialog.FileName;
Properties.Settings.Default.WorkOutDir = txtWorkOutDir.Text;
}
}
private void btnSaveConfig_Click(object sender, EventArgs e)
{
Properties.Settings.Default.ScanTailor = txtScanTailor.Text;
Properties.Settings.Default.WorkDir = txtWorkDir.Text;
Properties.Settings.Default.OrigsDir = txtOrigsDir.Text;
Properties.Settings.Default.WorkOutDir = txtWorkOutDir.Text;
Properties.Settings.Default.TempDir = txtTempDir.Text;
Properties.Settings.Default.GhostScript = txtGhostScript.Text;
Properties.Settings.Default.PDFtk = txtPdfTk.Text;
Properties.Settings.Default.TesserAct = txtTesserAct.Text;
Properties.Settings.Default.PostProcessor = txtPostProcessor.Text;
Properties.Settings.Default.PDFMetaAuthor = txtPDFMetaAuthor.Text;
Properties.Settings.Default.Banner = cmbBanner.SelectedIndex;
Properties.Settings.Default.Save();
statusLabel.Text = "Saved.";
}
}
}

View File

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Magick.NET.Core" version="12.3.0" targetFramework="net472" />
<package id="Magick.NET.SystemDrawing" version="6.1.4" targetFramework="net472" />
<package id="Magick.NET-Q8-AnyCPU" version="12.3.0" targetFramework="net472" />
<package id="WindowsAPICodePack-Core" version="1.1.2" targetFramework="net472" />
<package id="WindowsAPICodePack-Shell" version="1.1.1" targetFramework="net472" />
<package id="WiX" version="3.11.2" targetFramework="net472" />
</packages>

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,40 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' OR '$(MagickCopyNativeWindows)' == 'true'">
<NativeWindowsDLL Include="$(MSBuildThisFileDirectory)\..\..\runtimes\win*\native\*.dll" />
<None Include="@(NativeWindowsDLL)">
<Link>%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(MagickCopyNativeLinux)' == 'true'">
<NativeLinuxDLL Include="$(MSBuildThisFileDirectory)\..\..\runtimes\linux-x64\native\*.so" />
<None Include="@(NativeLinuxDLL)">
<Link>%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<NativeLinuxArm64DLL Include="$(MSBuildThisFileDirectory)\..\..\runtimes\linux-arm64\native\*.so" />
<None Include="@(NativeLinuxArm64DLL)">
<Link>%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(MagickCopyNativeLinuxMusl)' == 'true'">
<NativeLinuxMuslDLL Include="$(MSBuildThisFileDirectory)\..\..\runtimes\linux-musl-x64\native\*.so" />
<None Include="@(NativeLinuxMuslDLL)">
<Link>%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup Condition="'$(MagickCopyNativeMacOS)' == 'true'">
<NativeMacOSDLL Include="$(MSBuildThisFileDirectory)\..\..\runtimes\osx-x64\native\*.dylib" />
<None Include="@(NativeMacOSDLL)">
<Link>%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<NativeMacOSArm64DLL Include="$(MSBuildThisFileDirectory)\..\..\runtimes\osx-arm64\native\*.dylib" />
<None Include="@(NativeMacOSArm64DLL)">
<Link>%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@ -0,0 +1 @@
ImageMagick is a powerful image manipulation library that supports over 100 major file formats (not including sub-formats). With Magick.NET you can use ImageMagick without having to install ImageMagick on your server or desktop. Visit https://github.com/dlemstra/Magick.NET/tree/main/docs before installing to help you decide the best version.

Binary file not shown.

View File

@ -0,0 +1,2 @@
Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET.
Licensed under the Apache License, Version 2.0.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1 @@
ImageMagick is a powerful image manipulation library that supports over 100 major file formats (not including sub-formats). With Magick.NET you can use ImageMagick without having to install ImageMagick on your server or desktop. Visit https://github.com/dlemstra/Magick.NET/tree/main/docs before installing to help you decide the best version.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET.
Licensed under the Apache License, Version 2.0.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1 @@
ImageMagick is a powerful image manipulation library that supports over 100 major file formats (not including sub-formats). With Magick.NET you can use ImageMagick without having to install ImageMagick on your server or desktop. Visit https://github.com/dlemstra/Magick.NET/tree/main/docs before installing to help you decide the best version.

View File

@ -0,0 +1,136 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Magick.NET.SystemDrawing</name>
</assembly>
<members>
<member name="T:ImageMagick.IMagickColorExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickColor`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickColorExtensions.SetFromColor``1(ImageMagick.IMagickColor{``0},System.Drawing.Color)">
<summary>
Converts the specified <see cref="T:System.Drawing.Color"/> to a <see cref="T:ImageMagick.IMagickColor`1"/> instance.
</summary>
<param name="self">The color.</param>
<param name="color">The <see cref="T:System.Drawing.Color"/> to convert.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
</member>
<member name="M:ImageMagick.IMagickColorExtensions.ToColor``1(ImageMagick.IMagickColor{``0})">
<summary>
Converts the value of this instance to an equivalent Color.
</summary>
<param name="self">The color.</param>
<returns>A <see cref="T:System.Drawing.Color"/> instance.</returns>
<typeparam name="TQuantumType">The quantum type.</typeparam>
</member>
<member name="T:ImageMagick.IMagickGeometryExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickGeometry"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickGeometryExtensions.SetFromRectangle(ImageMagick.IMagickGeometry,System.Drawing.Rectangle)">
<summary>
Sets the values of this class using the specified <see cref="T:System.Drawing.Rectangle"/>.
</summary>
/// <param name="self">The geometry.</param>
<param name="rectangle">The <see cref="T:System.Drawing.Rectangle"/> to convert.</param>
</member>
<member name="M:ImageMagick.IMagickGeometryExtensions.ToRectangle(ImageMagick.IMagickGeometry)">
<summary>
Converts the value of this instance to an equivalent <see cref="T:System.Drawing.Rectangle"/>.
</summary>
<param name="self">The geometry.</param>
<returns>A <see cref="T:System.Drawing.Color"/> instance.</returns>
</member>
<member name="T:ImageMagick.IMagickImageCollectionExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickImageCollection`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickImageCollectionExtensions.ToBitmap``1(ImageMagick.IMagickImageCollection{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Tiff"/>.
</summary>
<param name="self">The image collection.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Tiff"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageCollectionExtensions.ToBitmap``1(ImageMagick.IMagickImageCollection{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Gif, Icon, Tiff.
</summary>
<param name="self">The image collection.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="T:ImageMagick.IMagickImageExtentions">
<content>
Contains code that is not compatible with .NET Core.
</content>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.Read``1(ImageMagick.IMagickImage{``0},System.Drawing.Bitmap)">
<summary>
Read single image frame.
</summary>
<param name="self">The image.</param>
<param name="bitmap">The bitmap to read the image from.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<exception cref="T:ImageMagick.MagickException">Thrown when an error is raised by ImageMagick.</exception>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmap``1(ImageMagick.IMagickImage{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.
</summary>
<param name="self">The image.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmapWithDensity``1(ImageMagick.IMagickImage{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.
</summary>
<param name="self">The image.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmap``1(ImageMagick.IMagickImage{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Bmp, Gif, Icon, Jpeg, Png, Tiff.
</summary>
<param name="self">The image.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmapWithDensity``1(ImageMagick.IMagickImage{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Bmp, Gif, Icon, Jpeg, Png, Tiff.
</summary>
<param name="self">The image.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="T:ImageMagick.IMagickImageFactoryExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickImageFactory`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickImageFactoryExtensions.Create``1(ImageMagick.IMagickImageFactory{``0},System.Drawing.Bitmap)">
<summary>
Initializes a new instance that implements <see cref="T:ImageMagick.IMagickImageFactory`1"/>.
</summary>
<param name="self">The image factory.</param>
<param name="bitmap">The bitmap to use.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<exception cref="T:ImageMagick.MagickException">Thrown when an error is raised by ImageMagick.</exception>
<returns>A new <see cref="T:ImageMagick.IMagickImage`1"/> instance.</returns>
</member>
</members>
</doc>

View File

@ -0,0 +1,136 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Magick.NET.SystemDrawing</name>
</assembly>
<members>
<member name="T:ImageMagick.IMagickColorExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickColor`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickColorExtensions.SetFromColor``1(ImageMagick.IMagickColor{``0},System.Drawing.Color)">
<summary>
Converts the specified <see cref="T:System.Drawing.Color"/> to a <see cref="T:ImageMagick.IMagickColor`1"/> instance.
</summary>
<param name="self">The color.</param>
<param name="color">The <see cref="T:System.Drawing.Color"/> to convert.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
</member>
<member name="M:ImageMagick.IMagickColorExtensions.ToColor``1(ImageMagick.IMagickColor{``0})">
<summary>
Converts the value of this instance to an equivalent Color.
</summary>
<param name="self">The color.</param>
<returns>A <see cref="T:System.Drawing.Color"/> instance.</returns>
<typeparam name="TQuantumType">The quantum type.</typeparam>
</member>
<member name="T:ImageMagick.IMagickGeometryExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickGeometry"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickGeometryExtensions.SetFromRectangle(ImageMagick.IMagickGeometry,System.Drawing.Rectangle)">
<summary>
Sets the values of this class using the specified <see cref="T:System.Drawing.Rectangle"/>.
</summary>
/// <param name="self">The geometry.</param>
<param name="rectangle">The <see cref="T:System.Drawing.Rectangle"/> to convert.</param>
</member>
<member name="M:ImageMagick.IMagickGeometryExtensions.ToRectangle(ImageMagick.IMagickGeometry)">
<summary>
Converts the value of this instance to an equivalent <see cref="T:System.Drawing.Rectangle"/>.
</summary>
<param name="self">The geometry.</param>
<returns>A <see cref="T:System.Drawing.Color"/> instance.</returns>
</member>
<member name="T:ImageMagick.IMagickImageCollectionExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickImageCollection`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickImageCollectionExtensions.ToBitmap``1(ImageMagick.IMagickImageCollection{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Tiff"/>.
</summary>
<param name="self">The image collection.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Tiff"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageCollectionExtensions.ToBitmap``1(ImageMagick.IMagickImageCollection{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Gif, Icon, Tiff.
</summary>
<param name="self">The image collection.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="T:ImageMagick.IMagickImageExtentions">
<content>
Contains code that is not compatible with .NET Core.
</content>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.Read``1(ImageMagick.IMagickImage{``0},System.Drawing.Bitmap)">
<summary>
Read single image frame.
</summary>
<param name="self">The image.</param>
<param name="bitmap">The bitmap to read the image from.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<exception cref="T:ImageMagick.MagickException">Thrown when an error is raised by ImageMagick.</exception>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmap``1(ImageMagick.IMagickImage{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.
</summary>
<param name="self">The image.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmapWithDensity``1(ImageMagick.IMagickImage{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.
</summary>
<param name="self">The image.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmap``1(ImageMagick.IMagickImage{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Bmp, Gif, Icon, Jpeg, Png, Tiff.
</summary>
<param name="self">The image.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmapWithDensity``1(ImageMagick.IMagickImage{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Bmp, Gif, Icon, Jpeg, Png, Tiff.
</summary>
<param name="self">The image.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="T:ImageMagick.IMagickImageFactoryExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickImageFactory`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickImageFactoryExtensions.Create``1(ImageMagick.IMagickImageFactory{``0},System.Drawing.Bitmap)">
<summary>
Initializes a new instance that implements <see cref="T:ImageMagick.IMagickImageFactory`1"/>.
</summary>
<param name="self">The image factory.</param>
<param name="bitmap">The bitmap to use.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<exception cref="T:ImageMagick.MagickException">Thrown when an error is raised by ImageMagick.</exception>
<returns>A new <see cref="T:ImageMagick.IMagickImage`1"/> instance.</returns>
</member>
</members>
</doc>

View File

@ -0,0 +1,136 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Magick.NET.SystemDrawing</name>
</assembly>
<members>
<member name="T:ImageMagick.IMagickColorExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickColor`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickColorExtensions.SetFromColor``1(ImageMagick.IMagickColor{``0},System.Drawing.Color)">
<summary>
Converts the specified <see cref="T:System.Drawing.Color"/> to a <see cref="T:ImageMagick.IMagickColor`1"/> instance.
</summary>
<param name="self">The color.</param>
<param name="color">The <see cref="T:System.Drawing.Color"/> to convert.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
</member>
<member name="M:ImageMagick.IMagickColorExtensions.ToColor``1(ImageMagick.IMagickColor{``0})">
<summary>
Converts the value of this instance to an equivalent Color.
</summary>
<param name="self">The color.</param>
<returns>A <see cref="T:System.Drawing.Color"/> instance.</returns>
<typeparam name="TQuantumType">The quantum type.</typeparam>
</member>
<member name="T:ImageMagick.IMagickGeometryExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickGeometry"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickGeometryExtensions.SetFromRectangle(ImageMagick.IMagickGeometry,System.Drawing.Rectangle)">
<summary>
Sets the values of this class using the specified <see cref="T:System.Drawing.Rectangle"/>.
</summary>
/// <param name="self">The geometry.</param>
<param name="rectangle">The <see cref="T:System.Drawing.Rectangle"/> to convert.</param>
</member>
<member name="M:ImageMagick.IMagickGeometryExtensions.ToRectangle(ImageMagick.IMagickGeometry)">
<summary>
Converts the value of this instance to an equivalent <see cref="T:System.Drawing.Rectangle"/>.
</summary>
<param name="self">The geometry.</param>
<returns>A <see cref="T:System.Drawing.Color"/> instance.</returns>
</member>
<member name="T:ImageMagick.IMagickImageCollectionExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickImageCollection`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickImageCollectionExtensions.ToBitmap``1(ImageMagick.IMagickImageCollection{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Tiff"/>.
</summary>
<param name="self">The image collection.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Tiff"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageCollectionExtensions.ToBitmap``1(ImageMagick.IMagickImageCollection{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Gif, Icon, Tiff.
</summary>
<param name="self">The image collection.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="T:ImageMagick.IMagickImageExtentions">
<content>
Contains code that is not compatible with .NET Core.
</content>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.Read``1(ImageMagick.IMagickImage{``0},System.Drawing.Bitmap)">
<summary>
Read single image frame.
</summary>
<param name="self">The image.</param>
<param name="bitmap">The bitmap to read the image from.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<exception cref="T:ImageMagick.MagickException">Thrown when an error is raised by ImageMagick.</exception>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmap``1(ImageMagick.IMagickImage{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.
</summary>
<param name="self">The image.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmapWithDensity``1(ImageMagick.IMagickImage{``0})">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.
</summary>
<param name="self">The image.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the format <see cref="P:System.Drawing.Imaging.ImageFormat.Bmp"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmap``1(ImageMagick.IMagickImage{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Bmp, Gif, Icon, Jpeg, Png, Tiff.
</summary>
<param name="self">The image.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="M:ImageMagick.IMagickImageExtentions.ToBitmapWithDensity``1(ImageMagick.IMagickImage{``0},System.Drawing.Imaging.ImageFormat)">
<summary>
Converts this instance to a <see cref="T:System.Drawing.Bitmap"/> using the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
Supported formats are: Bmp, Gif, Icon, Jpeg, Png, Tiff.
</summary>
<param name="self">The image.</param>
<param name="imageFormat">The image format.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<returns>A <see cref="T:System.Drawing.Bitmap"/> that has the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.</returns>
</member>
<member name="T:ImageMagick.IMagickImageFactoryExtensions">
<summary>
Extension methods for the <see cref="T:ImageMagick.IMagickImageFactory`1"/> interface.
</summary>
</member>
<member name="M:ImageMagick.IMagickImageFactoryExtensions.Create``1(ImageMagick.IMagickImageFactory{``0},System.Drawing.Bitmap)">
<summary>
Initializes a new instance that implements <see cref="T:ImageMagick.IMagickImageFactory`1"/>.
</summary>
<param name="self">The image factory.</param>
<param name="bitmap">The bitmap to use.</param>
<typeparam name="TQuantumType">The quantum type.</typeparam>
<exception cref="T:ImageMagick.MagickException">Thrown when an error is raised by ImageMagick.</exception>
<returns>A new <see cref="T:ImageMagick.IMagickImage`1"/> instance.</returns>
</member>
</members>
</doc>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WixInstallPath>$(MSBuildThisFileDirectory)..\tools</WixInstallPath>
<WixExtDir>$(WixInstallPath)\</WixExtDir>
<WixTargetsPath>$(WixInstallPath)\wix.targets</WixTargetsPath>
<LuxTargetsPath>$(WixInstallPath)\lux.targets</LuxTargetsPath>
<WixTasksPath>$(WixInstallPath)\WixTasks.dll</WixTasksPath>
<WixSdkPath>$(WixInstallPath)\sdk\</WixSdkPath>
<WixCATargetsPath>$(WixSdkPath)wix.ca.targets</WixCATargetsPath>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,28 @@
Copyright (c) .NET Foundation and contributors.
This software is released under the Microsoft Reciprocal License (MS-RL) (the "License"); you may not use the software except in compliance with the License.
The text of the Microsoft Reciprocal License (MS-RL) can be found online at:
http://opensource.org/licenses/ms-rl
Microsoft Reciprocal License (MS-RL)
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
3. Conditions and Limitations
(A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
(B) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
(C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
(D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
(F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More