首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Aspose.Pdf打印jpg

无法使用Aspose.Pdf打印jpg
EN

Stack Overflow用户
提问于 2021-06-08 21:26:17
回答 1查看 113关注 0票数 0

我想加载一个JPEG文件,并在C# (.net Framework4.8)中用Aspose.Pdf打印它。我目前拥有的代码是:

代码语言:javascript
复制
public void PrintImage(string fileToPrint, string printerName, string jobName)
    {
      System.Drawing.Image srcImage = System.Drawing.Image.FromFile(fileToPrint);
      int h = srcImage.Height;
      int w = srcImage.Width;

      var doc = new Document();
      var page = doc.Pages.Add();
      var image = new Image();
      image.File = (fileToPrint);

      page.PageInfo.Height = (h);
      page.PageInfo.Width = (w);
      page.PageInfo.Margin.Bottom = (0);
      page.PageInfo.Margin.Top = (0);
      page.PageInfo.Margin.Right = (0);
      page.PageInfo.Margin.Left = (0);

      page.Paragraphs.Add(image);

      var viewer = new PdfViewer(doc);
      PrintUsingViewer(viewer, printerName, jobName);
    }

    private static void PrintUsingViewer(PdfViewer viewer, string printerName, string jobName)
    {
      viewer.AutoResize = true;         // Print the file with adjusted size
      viewer.AutoRotate = true;         // Print the file with adjusted rotation
      viewer.PrintPageDialog = false;   // Do not produce the page number dialog when printing

      var ps = new System.Drawing.Printing.PrinterSettings();
      var pgs = new System.Drawing.Printing.PageSettings();

      ps.PrinterName = printerName;
      viewer.PrinterJobName = jobName;

      viewer.PrintDocumentWithSettings(pgs, ps);
      viewer.Close();
    }

当我保存文档而不是打印并查看它时,它看起来很好(添加了图像)。但是,当尝试打印图像时,图像不会打印,页面仅为空白。

我想打印,而不是先将文档保存为PDF,然后再尝试打印已保存的PDF。有没有人看到我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-09 14:24:36

解决方案是添加下面这行代码

代码语言:javascript
复制
doc.ProcessParagraphs();

紧跟在此行之后:

代码语言:javascript
复制
page.Paragraphs.Add(image);

所以代码现在变成了

代码语言:javascript
复制
public void PrintImage(string fileToPrint, string printerName, string jobName)
    {
      System.Drawing.Image srcImage = System.Drawing.Image.FromFile(fileToPrint);
      int h = srcImage.Height;
      int w = srcImage.Width;

      var doc = new Document();
      var page = doc.Pages.Add();
      var image = new Image();
      image.File = (fileToPrint);

      page.PageInfo.Height = (h);
      page.PageInfo.Width = (w);
      page.PageInfo.Margin.Bottom = (0);
      page.PageInfo.Margin.Top = (0);
      page.PageInfo.Margin.Right = (0);
      page.PageInfo.Margin.Left = (0);

      page.Paragraphs.Add(image);
      doc.ProcessParagraphs();

      var viewer = new PdfViewer(doc);
      PrintUsingViewer(viewer, printerName, jobName);
    }

    private static void PrintUsingViewer(PdfViewer viewer, string printerName, string jobName)
    {
      viewer.AutoResize = true;         // Print the file with adjusted size
      viewer.AutoRotate = true;         // Print the file with adjusted rotation
      viewer.PrintPageDialog = false;   // Do not produce the page number dialog when printing

      var ps = new System.Drawing.Printing.PrinterSettings();
      var pgs = new System.Drawing.Printing.PageSettings();

      ps.PrinterName = printerName;
      viewer.PrinterJobName = jobName;

      viewer.PrintDocumentWithSettings(pgs, ps);
      viewer.Close();
    }

现在图像打印正确了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67887904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档