Merge branch 'print' into v4

Change print implementation to use PrintDocument instead of generating a PDF

Conflicts:
	NAPS2.Core/Icons.Designer.cs
	NAPS2.Core/Icons.resx
	NAPS2.Core/NAPS2.Core.csproj
	NAPS2.Core/WinForms/FDesktop.Designer.cs
	NAPS2.Core/WinForms/FDesktop.cs
	NAPS2.Core/WinForms/FDesktop.resx
This commit is contained in:
Ben Olden-Cooligan 2015-07-10 18:55:22 -04:00
commit bd57ac6296
10 changed files with 241 additions and 17 deletions

View File

@ -470,6 +470,16 @@ namespace NAPS2 {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap printer {
get {
object obj = ResourceManager.GetObject("printer", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>

View File

@ -289,4 +289,7 @@
<data name="arrow_right" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="arrow_right" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="printer" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\printer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

View File

@ -0,0 +1,34 @@
/*
NAPS2 (Not Another PDF Scanner 2)
http://sourceforge.net/projects/naps2/
Copyright (C) 2009 Pavel Sorejs
Copyright (C) 2012 Michael Adams
Copyright (C) 2013 Peter De Leeuw
Copyright (C) 2012-2014 Ben Olden-Cooligan
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
using System;
using System.Collections.Generic;
using System.Drawing.Printing;
using System.Linq;
using NAPS2.Scan.Images;
namespace NAPS2.ImportExport.Pdf
{
public interface IImagePrinter
{
void PromptToPrint(List<IScannedImage> images, List<IScannedImage> selectedImages);
void Print(PrinterSettings printerSettings, List<IScannedImage> images, List<IScannedImage> selectedImages);
}
}

View File

@ -0,0 +1,96 @@
/*
NAPS2 (Not Another PDF Scanner 2)
http://sourceforge.net/projects/naps2/
Copyright (C) 2009 Pavel Sorejs
Copyright (C) 2012 Michael Adams
Copyright (C) 2013 Peter De Leeuw
Copyright (C) 2012-2014 Ben Olden-Cooligan
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Windows.Forms;
using NAPS2.Scan.Images;
namespace NAPS2.ImportExport.Pdf
{
public class PrintDocumentPrinter : IImagePrinter
{
public void PromptToPrint(List<IScannedImage> images, List<IScannedImage> selectedImages)
{
if (!images.Any())
{
return;
}
var printDialog = new PrintDialog
{
AllowSelection = selectedImages.Any(),
AllowSomePages = true,
PrinterSettings =
{
MinimumPage = 1,
MaximumPage = images.Count,
FromPage = 1,
ToPage = images.Count
}
};
if (printDialog.ShowDialog() == DialogResult.OK)
{
Print(printDialog.PrinterSettings, images, selectedImages);
}
}
public void Print(PrinterSettings printerSettings, List<IScannedImage> images, List<IScannedImage> selectedImages)
{
List<IScannedImage> imagesToPrint;
switch (printerSettings.PrintRange)
{
case PrintRange.AllPages:
imagesToPrint = images;
break;
case PrintRange.Selection:
imagesToPrint = selectedImages;
break;
case PrintRange.SomePages:
int start = printerSettings.FromPage - 1;
int length = printerSettings.ToPage - start;
imagesToPrint = images.Skip(start).Take(length).ToList();
break;
default:
imagesToPrint = new List<IScannedImage>();
break;
}
var printDocument = new PrintDocument();
int i = 0;
printDocument.PrintPage += (sender, e) =>
{
using (var image = imagesToPrint[i].GetImage())
{
var pb = e.PageBounds;
var rect = image.Width / pb.Width < image.Height / pb.Height
? new Rectangle(pb.Left, pb.Top, image.Width * pb.Height / image.Height, pb.Height)
: new Rectangle(pb.Left, pb.Top, pb.Width, image.Height * pb.Width / image.Width);
e.Graphics.DrawImage(image, rect);
}
e.HasMorePages = (++i < imagesToPrint.Count);
};
printDocument.PrinterSettings = printerSettings;
printDocument.Print();
}
}
}

View File

@ -87,6 +87,8 @@
<Compile Include="Config\ProfileManager.cs" /> <Compile Include="Config\ProfileManager.cs" />
<Compile Include="Config\UserConfig.cs" /> <Compile Include="Config\UserConfig.cs" />
<Compile Include="Config\UserConfigManager.cs" /> <Compile Include="Config\UserConfigManager.cs" />
<Compile Include="ImportExport\Pdf\PrintDocumentPrinter.cs" />
<Compile Include="ImportExport\Pdf\IImagePrinter.cs" />
<Compile Include="Lang\Resources\MiscResources.Designer.cs"> <Compile Include="Lang\Resources\MiscResources.Designer.cs">
<DependentUpon>MiscResources.resx</DependentUpon> <DependentUpon>MiscResources.resx</DependentUpon>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
@ -1869,6 +1871,7 @@
<Content Include="Resources\picture_edit.png" /> <Content Include="Resources\picture_edit.png" />
<Content Include="Resources\picture_save.png" /> <Content Include="Resources\picture_save.png" />
<Content Include="Resources\scanner-default.png" /> <Content Include="Resources\scanner-default.png" />
<Content Include="Resources\printer.png" />
<Content Include="Resources\text.png" /> <Content Include="Resources\text.png" />
<Content Include="Resources\transform_crop.ico" /> <Content Include="Resources\transform_crop.ico" />
<Content Include="Resources\transform_crop.png" /> <Content Include="Resources\transform_crop.png" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -56,6 +56,7 @@ namespace NAPS2.WinForms
this.tsdEmailPDF = new System.Windows.Forms.ToolStripSplitButton(); this.tsdEmailPDF = new System.Windows.Forms.ToolStripSplitButton();
this.tsEmailPDFAll = new System.Windows.Forms.ToolStripMenuItem(); this.tsEmailPDFAll = new System.Windows.Forms.ToolStripMenuItem();
this.tsEmailPDFSelected = new System.Windows.Forms.ToolStripMenuItem(); this.tsEmailPDFSelected = new System.Windows.Forms.ToolStripMenuItem();
this.tsdPrint = new System.Windows.Forms.ToolStripDropDownButton();
this.tsImport = new System.Windows.Forms.ToolStripButton(); this.tsImport = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.tsdImage = new System.Windows.Forms.ToolStripDropDownButton(); this.tsdImage = new System.Windows.Forms.ToolStripDropDownButton();
@ -158,6 +159,7 @@ namespace NAPS2.WinForms
this.tsdSavePDF, this.tsdSavePDF,
this.tsdSaveImages, this.tsdSaveImages,
this.tsdEmailPDF, this.tsdEmailPDF,
this.tsdPrint,
this.tsImport, this.tsImport,
this.toolStripSeparator4, this.toolStripSeparator4,
this.tsdImage, this.tsdImage,
@ -177,7 +179,6 @@ namespace NAPS2.WinForms
// //
this.tsScan.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.tsScan.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsNewProfile}); this.tsNewProfile});
this.tsScan.Image = global::NAPS2.Icons.control_play_blue;
resources.ApplyResources(this.tsScan, "tsScan"); resources.ApplyResources(this.tsScan, "tsScan");
this.tsScan.Margin = new System.Windows.Forms.Padding(5, 1, 5, 2); this.tsScan.Margin = new System.Windows.Forms.Padding(5, 1, 5, 2);
this.tsScan.Name = "tsScan"; this.tsScan.Name = "tsScan";
@ -280,6 +281,15 @@ namespace NAPS2.WinForms
resources.ApplyResources(this.tsEmailPDFSelected, "tsEmailPDFSelected"); resources.ApplyResources(this.tsEmailPDFSelected, "tsEmailPDFSelected");
this.tsEmailPDFSelected.Click += new System.EventHandler(this.tsEmailPDFSelected_Click); this.tsEmailPDFSelected.Click += new System.EventHandler(this.tsEmailPDFSelected_Click);
// //
// tsdPrint
//
this.tsdPrint.Image = global::NAPS2.Icons.printer;
resources.ApplyResources(this.tsdPrint, "tsdPrint");
this.tsdPrint.Name = "tsdPrint";
this.tsdPrint.Padding = new System.Windows.Forms.Padding(10, 0, 10, 0);
this.tsdPrint.ShowDropDownArrow = false;
this.tsdPrint.Click += new System.EventHandler(this.tsdPrint_Click);
//
// tsImport // tsImport
// //
this.tsImport.Image = global::NAPS2.Icons.folder_picture; this.tsImport.Image = global::NAPS2.Icons.folder_picture;
@ -569,6 +579,7 @@ namespace NAPS2.WinForms
private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
private System.Windows.Forms.ToolStripMenuItem tsReset; private System.Windows.Forms.ToolStripMenuItem tsReset;
private System.Windows.Forms.ToolStripMenuItem customRotationToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem customRotationToolStripMenuItem;
private System.Windows.Forms.ToolStripDropDownButton tsdPrint;
} }
} }

View File

@ -23,6 +23,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Drawing.Printing;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@ -33,6 +34,7 @@ using NAPS2.Config;
using NAPS2.ImportExport; using NAPS2.ImportExport;
using NAPS2.ImportExport.Email; using NAPS2.ImportExport.Email;
using NAPS2.ImportExport.Images; using NAPS2.ImportExport.Images;
using NAPS2.ImportExport.Pdf;
using NAPS2.Lang; using NAPS2.Lang;
using NAPS2.Lang.Resources; using NAPS2.Lang.Resources;
using NAPS2.Ocr; using NAPS2.Ocr;
@ -58,8 +60,10 @@ namespace NAPS2.WinForms
private readonly OcrDependencyManager ocrDependencyManager; private readonly OcrDependencyManager ocrDependencyManager;
private readonly IProfileManager profileManager; private readonly IProfileManager profileManager;
private readonly IScanPerformer scanPerformer; private readonly IScanPerformer scanPerformer;
private readonly IImagePrinter imagePrinter;
private readonly IPdfExporter pdfExporter;
public FDesktop(IEmailer emailer, ImageSaver imageSaver, StringWrapper stringWrapper, AppConfigManager appConfigManager, IErrorOutput errorOutput, IScannedImageFactory scannedImageFactory, RecoveryManager recoveryManager, IScannedImageImporter scannedImageImporter, AutoUpdaterUI autoUpdaterUI, OcrDependencyManager ocrDependencyManager, IProfileManager profileManager, IScanPerformer scanPerformer) public FDesktop(IEmailer emailer, ImageSaver imageSaver, StringWrapper stringWrapper, AppConfigManager appConfigManager, IErrorOutput errorOutput, IScannedImageFactory scannedImageFactory, RecoveryManager recoveryManager, IScannedImageImporter scannedImageImporter, AutoUpdaterUI autoUpdaterUI, OcrDependencyManager ocrDependencyManager, IProfileManager profileManager, IScanPerformer scanPerformer, IImagePrinter imagePrinter, IPdfExporter pdfExporter)
{ {
this.emailer = emailer; this.emailer = emailer;
this.imageSaver = imageSaver; this.imageSaver = imageSaver;
@ -73,6 +77,8 @@ namespace NAPS2.WinForms
this.ocrDependencyManager = ocrDependencyManager; this.ocrDependencyManager = ocrDependencyManager;
this.profileManager = profileManager; this.profileManager = profileManager;
this.scanPerformer = scanPerformer; this.scanPerformer = scanPerformer;
this.imagePrinter = imagePrinter;
this.pdfExporter = pdfExporter;
InitializeComponent(); InitializeComponent();
} }
@ -226,7 +232,7 @@ namespace NAPS2.WinForms
// Top-level toolbar actions // Top-level toolbar actions
tsdImage.Enabled = tsdRotate.Enabled = tsMove.Enabled = tsDelete.Enabled = SelectedIndices.Any(); tsdImage.Enabled = tsdRotate.Enabled = tsMove.Enabled = tsDelete.Enabled = SelectedIndices.Any();
tsdReorder.Enabled = tsdSavePDF.Enabled = tsdSaveImages.Enabled = tsdEmailPDF.Enabled = tsClear.Enabled = imageList.Images.Any(); tsdReorder.Enabled = tsdSavePDF.Enabled = tsdSaveImages.Enabled = tsdEmailPDF.Enabled = tsdPrint.Enabled = tsClear.Enabled = imageList.Images.Any();
// Context-menu actions // Context-menu actions
ctxView.Visible = ctxCopy.Visible = SelectedIndices.Any(); ctxView.Visible = ctxCopy.Visible = SelectedIndices.Any();
@ -878,5 +884,10 @@ namespace NAPS2.WinForms
UpdateThumbnails(SelectedIndices.ToList()); UpdateThumbnails(SelectedIndices.ToList());
} }
} }
private void tsdPrint_Click(object sender, EventArgs e)
{
imagePrinter.PromptToPrint(imageList.Images, SelectedImages.ToList());
}
} }
} }

View File

@ -177,7 +177,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="thumbnailList1.Size" type="System.Drawing.Size, System.Drawing"> <data name="thumbnailList1.Size" type="System.Drawing.Size, System.Drawing">
<value>1184, 472</value> <value>1204, 472</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="thumbnailList1.TabIndex" type="System.Int32, mscorlib"> <data name="thumbnailList1.TabIndex" type="System.Int32, mscorlib">
@ -187,7 +187,7 @@
<value>thumbnailList1</value> <value>thumbnailList1</value>
</data> </data>
<data name="&gt;&gt;thumbnailList1.Type" xml:space="preserve"> <data name="&gt;&gt;thumbnailList1.Type" xml:space="preserve">
<value>NAPS2.WinForms.ThumbnailList, NAPS2.Core, Version=3.3.5.27685, Culture=neutral, PublicKeyToken=null</value> <value>NAPS2.WinForms.ThumbnailList, NAPS2.Core, Version=3.3.5.30532, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;thumbnailList1.Parent" xml:space="preserve"> <data name="&gt;&gt;thumbnailList1.Parent" xml:space="preserve">
<value>toolStripContainer1.ContentPanel</value> <value>toolStripContainer1.ContentPanel</value>
@ -196,7 +196,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="toolStripContainer1.ContentPanel.Size" type="System.Drawing.Size, System.Drawing"> <data name="toolStripContainer1.ContentPanel.Size" type="System.Drawing.Size, System.Drawing">
<value>1184, 472</value> <value>1204, 472</value>
</data> </data>
<data name="&gt;&gt;toolStripContainer1.ContentPanel.Name" xml:space="preserve"> <data name="&gt;&gt;toolStripContainer1.ContentPanel.Name" xml:space="preserve">
<value>toolStripContainer1.ContentPanel</value> <value>toolStripContainer1.ContentPanel</value>
@ -241,7 +241,7 @@
<value>2</value> <value>2</value>
</data> </data>
<data name="toolStripContainer1.Size" type="System.Drawing.Size, System.Drawing"> <data name="toolStripContainer1.Size" type="System.Drawing.Size, System.Drawing">
<value>1184, 526</value> <value>1204, 526</value>
</data> </data>
<data name="toolStripContainer1.TabIndex" type="System.Int32, mscorlib"> <data name="toolStripContainer1.TabIndex" type="System.Int32, mscorlib">
<value>13</value> <value>13</value>
@ -261,6 +261,43 @@
<data name="tsNewProfile.Text" xml:space="preserve"> <data name="tsNewProfile.Text" xml:space="preserve">
<value>New Profile</value> <value>New Profile</value>
</data> </data>
<data name="tsScan.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
S7EAAAAASUVORK5CYII=
</value>
</data>
<data name="tsScan.ImageTransparentColor" type="System.Drawing.Color, System.Drawing"> <data name="tsScan.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value> <value>Magenta</value>
</data> </data>
@ -338,13 +375,13 @@
<value>6, 54</value> <value>6, 54</value>
</data> </data>
<data name="tsSavePDFAll.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsSavePDFAll.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 22</value> <value>143, 22</value>
</data> </data>
<data name="tsSavePDFAll.Text" xml:space="preserve"> <data name="tsSavePDFAll.Text" xml:space="preserve">
<value>All ({0})</value> <value>All ({0})</value>
</data> </data>
<data name="tsSavePDFSelected.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsSavePDFSelected.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 22</value> <value>143, 22</value>
</data> </data>
<data name="tsSavePDFSelected.Text" xml:space="preserve"> <data name="tsSavePDFSelected.Text" xml:space="preserve">
<value>Selected ({0})</value> <value>Selected ({0})</value>
@ -362,13 +399,13 @@
<value>ImageAboveText</value> <value>ImageAboveText</value>
</data> </data>
<data name="tsSaveImagesAll.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsSaveImagesAll.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 22</value> <value>143, 22</value>
</data> </data>
<data name="tsSaveImagesAll.Text" xml:space="preserve"> <data name="tsSaveImagesAll.Text" xml:space="preserve">
<value>All ({0})</value> <value>All ({0})</value>
</data> </data>
<data name="tsSaveImagesSelected.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsSaveImagesSelected.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 22</value> <value>143, 22</value>
</data> </data>
<data name="tsSaveImagesSelected.Text" xml:space="preserve"> <data name="tsSaveImagesSelected.Text" xml:space="preserve">
<value>Selected ({0})</value> <value>Selected ({0})</value>
@ -386,13 +423,13 @@
<value>ImageAboveText</value> <value>ImageAboveText</value>
</data> </data>
<data name="tsEmailPDFAll.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsEmailPDFAll.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 22</value> <value>143, 22</value>
</data> </data>
<data name="tsEmailPDFAll.Text" xml:space="preserve"> <data name="tsEmailPDFAll.Text" xml:space="preserve">
<value>All ({0})</value> <value>All ({0})</value>
</data> </data>
<data name="tsEmailPDFSelected.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsEmailPDFSelected.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 22</value> <value>143, 22</value>
</data> </data>
<data name="tsEmailPDFSelected.Text" xml:space="preserve"> <data name="tsEmailPDFSelected.Text" xml:space="preserve">
<value>Selected ({0})</value> <value>Selected ({0})</value>
@ -409,6 +446,18 @@
<data name="tsdEmailPDF.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms"> <data name="tsdEmailPDF.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value> <value>ImageAboveText</value>
</data> </data>
<data name="tsdPrint.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsdPrint.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 51</value>
</data>
<data name="tsdPrint.Text" xml:space="preserve">
<value>Print</value>
</data>
<data name="tsdPrint.TextImageRelation" type="System.Windows.Forms.TextImageRelation, System.Windows.Forms">
<value>ImageAboveText</value>
</data>
<data name="tsImport.ImageTransparentColor" type="System.Drawing.Color, System.Drawing"> <data name="tsImport.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value> <value>Magenta</value>
</data> </data>
@ -672,7 +721,7 @@
<value>3, 0</value> <value>3, 0</value>
</data> </data>
<data name="tStrip.Size" type="System.Drawing.Size, System.Drawing"> <data name="tStrip.Size" type="System.Drawing.Size, System.Drawing">
<value>1128, 54</value> <value>1184, 54</value>
</data> </data>
<data name="tStrip.TabIndex" type="System.Int32, mscorlib"> <data name="tStrip.TabIndex" type="System.Int32, mscorlib">
<value>12</value> <value>12</value>
@ -723,7 +772,7 @@
<value>6, 13</value> <value>6, 13</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1184, 526</value> <value>1204, 526</value>
</data> </data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
@ -854,6 +903,12 @@
<data name="&gt;&gt;tsEmailPDFSelected.Type" xml:space="preserve"> <data name="&gt;&gt;tsEmailPDFSelected.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;tsdPrint.Name" xml:space="preserve">
<value>tsdPrint</value>
</data>
<data name="&gt;&gt;tsdPrint.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripDropDownButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsImport.Name" xml:space="preserve"> <data name="&gt;&gt;tsImport.Name" xml:space="preserve">
<value>tsImport</value> <value>tsImport</value>
</data> </data>
@ -948,7 +1003,7 @@
<value>tsMove</value> <value>tsMove</value>
</data> </data>
<data name="&gt;&gt;tsMove.Type" xml:space="preserve"> <data name="&gt;&gt;tsMove.Type" xml:space="preserve">
<value>NAPS2.WinForms.ToolStripDoubleButton, NAPS2.Core, Version=3.3.5.27685, Culture=neutral, PublicKeyToken=null</value> <value>NAPS2.WinForms.ToolStripDoubleButton, NAPS2.Core, Version=3.3.5.30532, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
<data name="&gt;&gt;tsdReorder.Name" xml:space="preserve"> <data name="&gt;&gt;tsdReorder.Name" xml:space="preserve">
<value>tsdReorder</value> <value>tsdReorder</value>
@ -1032,6 +1087,6 @@
<value>FDesktop</value> <value>FDesktop</value>
</data> </data>
<data name="&gt;&gt;$this.Type" xml:space="preserve"> <data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>NAPS2.WinForms.FormBase, NAPS2.Core, Version=3.3.5.27685, Culture=neutral, PublicKeyToken=null</value> <value>NAPS2.WinForms.FormBase, NAPS2.Core, Version=3.3.5.30532, Culture=neutral, PublicKeyToken=null</value>
</data> </data>
</root> </root>

View File

@ -31,6 +31,7 @@ namespace NAPS2.DI
// Export // Export
Bind<IPdfExporter>().To<PdfSharpExporter>(); Bind<IPdfExporter>().To<PdfSharpExporter>();
Bind<IImagePrinter>().To<PrintDocumentPrinter>();
Bind<IEmailer>().To<MapiEmailer>(); Bind<IEmailer>().To<MapiEmailer>();
Bind<IOcrEngine>().To<TesseractOcrEngine>(); Bind<IOcrEngine>().To<TesseractOcrEngine>();