【问题标题】:abcPDF is malforming my image after adding it to a pdfabcPDF 在将我的图像添加到 pdf 后格式不正确
【发布时间】:2011-04-25 18:45:39
【问题描述】:

我从我的服务器获取一个表示 TIFF 文件的字节数组,将其转换为 XImage,然后将其添加到新的 pdf 文档中。有问题的图像是 1280x800(这是一个屏幕截图),并且正在被拉伸和加长以适应标准 pdf 页面的高度和宽度。我该如何解决这个问题?

【问题讨论】:

  • 您找到解决方案了吗? abcPDF 也在拉伸我的图像,即使我先设置了媒体框。

标签: c# pdf abcpdf


【解决方案1】:

试试这个:

    doc.MediaBox.String = img.BoundingBox.String;
    doc.Rect.String = doc.MediaBox.String;

doc is Docimg is XImage 的位置

【讨论】:

    【解决方案2】:

    您遇到的特殊问题是由于将打印机设置为纵向。

    作为 PDF 对象,您可能需要模拟一个模仿您所追求的图像大小的页面。

    您最好将原始文档发送到图像并添加 TIFF 文件。

    【讨论】:

      【解决方案3】:

      取决于 PDF 页面的构建方式。您可能想要做的是确保您创建的 PDF 页面与您的图像具有相同的纵横比,而不是默认为字母大小的页面。

      由于您没有指定如何制作 PDF 页面,因此我无法具体帮助您。但一般来说,PDF 页面的单位是 1/72 英寸。您可以像这样计算正确大小的页面:

      const kPdfPageUnitSize = 72f;
      
      float GetPdfSize(int nPixels, float dotsPerInch) {
          return (nPixels / dotsPerInch) * kPdfPageUnitSize;
      }
      
      
      // later
      float pdfwidth = GetPdfSize(image.Width, image.Resolution.X); // or however you have this
      float pdfheight = GetPdfSize(image.Height, image.Resolution.Y);
      

      【讨论】:

        【解决方案4】:

        如我所见,图像比例系数不正确。您应该将图像高度和图像宽度划分为 1,33(3)(即 96f/72f)

        默认 PDF 用户单位为 1⁄72 英寸,因此您的图像 DPI 应与原始图像成比例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-15
          • 2011-05-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多