使用Microsoft Print To PDF打印机打印矢量图像而不是基于PDF的像素

时间:2018-04-16 08:51:53

标签: c# pdf printing

我正在尝试使用默认实现的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 filepathHow to programmatically print to PDF 都不会以任何方式帮助我因为他们都只专注于绘制内容,而这些内容将再次出现在基于像素的PrintDocument中。

那么如何设置一个文件/ filePath作为PrintDocument的输入来保存矢量信息呢?

0 个答案:

没有答案