C# - 使用Windows 10' Microsoft Print to PDF'用于多张图片

时间:2016-01-18 14:13:34

标签: c# pdf printing windows-10

我想将多个图像打印到pdf文件,但不是使用常规的打印对话,而是打印图片'对话(见下图)。作为一台打印机,我想使用Windows 10附带的' Microsoft打印到PDF' -Printer。

我目前的代码如下:

string fileName = @"C:\Users\mt\Pictures\test\test.jpg";
var p = new Process();
p.StartInfo.FileName = fileName;
p.StartInfo.Verb = "Print";
p.Start();

到目前为止,正确的对话正在展示。我首先尝试了其他方法,但没有给我这个方法。我现在可以将一张图像打印到pdf页面,但如何添加其他图像?此外,在此解决方案中,我无法看到如何设置打印设置,如图像的大小,这应该尽可能大,而不切割图像和更改为水平格式。

早些时候,我有这段代码:

try
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
    pd.PrinterSettings.PrinterName = STR_PRINTER_NAME;
    pd.Print();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
    System.Drawing.Image img = System.Drawing.Image.FromFile(@"C:\Users\mt\Pictures\test\1.jpg");
    Point loc = new Point(100, 100);
    e.Graphics.DrawImage(img, loc);
    img.Dispose();
}

我为'打印图片' -Dialog更改了。最后,对话框本身并不重要,但“打印图片”-Dialog获得了我需要的所有设置。用户必须设置的唯一内容是pdf文件的名称。 Print Picture - Dialogue

1 个答案:

答案 0 :(得分:0)

解决了多页'以下代码存在问题:

private void button1_Click(object sender, EventArgs e)
{
    imgs.Add(img1);
    imgs.Add(img2);
    imgs.Add(img3);
    imgs.Add(img4);

    try
    {
        PrintDocument pd = new PrintDocument();

        pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);

        pd.PrinterSettings.PrinterName = "Microsoft Print to PDF";
        pd.Print();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
    Graphics graphic = e.Graphics;

    Point p = new Point(10, 10);
    Image img = Image.FromFile(imgs.ElementAt(page));
    graphic.DrawImage(img, p);
    page++;
    e.HasMorePages = page < imgs.Count;
    img.Dispose();
}

仍然无法弄清楚如何设置最大尺寸

相关问题