c# - 使用 pdfium 从 C# 打印 PDF 到卷纸
问题描述
我正在尝试从生成的 pdf 文件进行打印,以复制 80 毫米宽的卷筒打印输出。即 pdf 打印到自定义的 80 毫米宽的页面类型。
我使用下面的代码发送此文件,它传递了一个 80 x 297 毫米的纸张名称,它对应于物理热敏打印机纸张尺寸。我无法弄清楚为什么 pdfiumviewer 将打印机上的输出缩小到仅在 80 毫米宽的纸张上只有大约 20 毫米宽当我直接从 EDGE ot adobe 打印 PDF 时,pdf 完全适合纸张。我无法弄清楚为什么它会缩小。
如果有人有解决方案或更好的方法将 PDF 静默打印到目标打印机,我非常愿意接受建议。
public bool PrintPDF(string printer, string paperName, string filename, int copies)
{
try
{
// Create the printer settings for our printer
var printerSettings = new PrinterSettings
{
PrinterName = printer,
Copies = (short)copies,
};
// Create our page settings for the paper size selected
var pageSettings = new PageSettings(printerSettings)
{
Margins = new Margins(0, 0, 0, 0),
};
foreach (PaperSize papersize in printerSettings.PaperSizes)
{
if (papersize.PaperName == paperName)
{
pageSettings.PaperSize = papersize;
break;
}
}
// Now print the PDF document
using (var document = PdfDocument.Load(filename))
{
using (var printDocument = document.CreatePrintDocument())
{
printDocument.PrinterSettings = printerSettings;
printDocument.DefaultPageSettings = pageSettings;
printDocument.Print();
}
}
return true;
}
catch
{
return false;
}
}
解决方案
推荐阅读
- python - 找不到 LSTM 的 dnn 实现
- c++ - 修改系统卷时如何修改 WASAPI 环回捕获卷?
- java - 接受输入并检查其是否有效年龄的代码,如果不重复,直到它是
- java - 尝试模拟请求时得到cloudflare 429,使用提琴手时没有得到它
- dialogflow-es - 是否可以使用背景音频进行对话?
- amazon-dynamodb - DynamoDB update_item:增加现有项目的值或为新项目使用 1
- android - 无法启动 Android 5.0.1 的相机预览,无法连接到相机服务
- python - Python 停止运行然后导致内存激增
- javascript - 异步生成器函数中是否需要等待?
- javascript - 既然 ES2015 动态 import() 被广泛支持,那么 ES2015 静态导入有哪些优势呢?