Basierend auf das Papierfach PaperSource
von etwas zu bekommen wie here on MSDN, wenn Sie nicht Ghostscript.NET nichts dagegen tun verwenden, dies sollte für Sie arbeiten:
public void PrintPdf(string filePath, string printQueueName, PaperSource paperTray)
{
using (ManualResetEvent done = new ManualResetEvent(false))
using (PrintDocument document = new PrintDocument())
{
document.DocumentName = "My PDF";
document.PrinterSettings.PrinterName = printQueueName;
document.DefaultPageSettings.PaperSize = new PaperSize("Letter", 850, 1100);
document.DefaultPageSettings.PaperSource = paperTray;
document.OriginAtMargins = false;
using (var rasterizer = new GhostscriptRasterizer())
{
var lastInstalledVersion =
GhostscriptVersionInfo.GetLastInstalledVersion(
GhostscriptLicense.GPL | GhostscriptLicense.AFPL,
GhostscriptLicense.GPL);
rasterizer.Open(filePath, lastInstalledVersion, false);
int xDpi = 96, yDpi = 96, pageNumber = 0;
document.PrintPage += (o, p) =>
{
pageNumber++;
p.Graphics.DrawImageUnscaledAndClipped(
rasterizer.GetPage(xDpi, yDpi, pageNumber),
new Rectangle(0, 0, 850, 1100));
p.HasMorePages = pageNumber < rasterizer.PageCount;
};
document.EndPrint += (o, p) =>
{
done.Set();
};
document.Print();
done.WaitOne();
}
}
}
Haben Sie versucht, die PDF-Dokumente auf verschiedenen Papiergrößen zu erzeugen? Mit welchem Code werden Sie jetzt PDFs erstellen? Welche Skripte versteht Ihr Drucker? – zipzit
Ich benutze PDF-Formulare und bearbeite es mit iTextSharp dann Speichern als PDF, nicht sicher, welche Skripte der Drucker wird –
Ich denke, Sie wollen [PaperCut] (http://www.papercut.com/tour/advanced-scripting /) oder etwas genau so. Ich vermute mit dem richtigen Drucker-Scripting-Tool könntest du bestimmen, welcher Papierkorb über einen Dateinamen extrahiert werden soll. E. G. 'Filename_big.pdf' versus 'Dateiname_little.pdf' – zipzit