我正在尝试使用默认实现的Microsoft Print To PDF打印机将矢量图像(emf文件)打印为PDF。现在我只需创建PrintDocument
,将其PrinterSettings
更改为所选的打印机 Microsoft Print To PDF 并更改其他PrintDocument
'的属性。
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
pd.PrinterSettings = /*some custom printerSettings*/;
现在我基本上只是在Bitmap
上绘制emf文件的缩放图像,然后我在pd
上绘制。
private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
Bitmap printDrawing = Draw.PrintVersion(); //custom method that handles the scaled drawing
e.Graphics.DrawImage(printDrawing, new Point(0, 0));
}
作为回报,我得到了一个PDF文件,但问题是PDf文件上的绘图是基于像素的,因为我在Bitmap
上只绘制了pd
。
所以问题是如何解决这个问题,结果是PDF文件相应地缩放矢量图像?所以我必须跳过绘图,所以我想到只是将EMF文件的filePath设置为PrintDocument
的输入,但是Programmatically provide a filepath和How to programmatically print to PDF 都不会以任何方式帮助我因为他们都只专注于绘制内容,而这些内容将再次出现在基于像素的PrintDocument
中。
那么如何设置一个文件/ filePath作为PrintDocument
的输入来保存矢量信息呢?