首页 > 解决方案 > iTextSharp - 打印时 PDF 分辨率变为奇怪的大小

问题描述

我们在系统中以非常简单的方式使用 iTextSharp。我们的 Web API 从我们的数据库中获取一系列图像,然后从这些图像中创建一个图形,然后将单个 png 创建的图像保存到一个 pdf 文件中以供打印。(它打印员工徽章)我将代码设置为 300 的 DPI。我们生成的图像,然后放在 pdf 上是 952x584 像素。这会产生 4 个完美的条形码。

无论我通过 iTextSharp 提供什么设置,生成的 pdf 在打印预览中都表示它的打印区域为 13.2" x 8.1"(英寸)。让它打印整个文档的唯一方法是“缩小到页面”,这会使条形码模糊。(我们基本上打印到 CR80 尺寸)

        var doc =
            new Document(
                new Rectangle(0, 0, (float)bdgDesignDto.BdgLayoutFront.Width,
                    (float)bdgDesignDto.BdgLayoutFront.Height), 0, 0, 0, 0);

                var front = iTextSharp.text.Image.GetInstance(bdgDesignDto.BdgFrontImage);
                front.SetDpi(300,300);
                front.ScaleToFitHeight = false;
                front.ScaleToFitLineWhenOverflow = false;
                front.CompressionLevel = PdfStream.NO_COMPRESSION;
                front.ScaleAbsolute((float)bdgDesignDto.BdgLayoutFront.Width, (float)bdgDesignDto.BdgLayoutFront.Height);
                doc.Add(front);

我已经更改/删除/添加了几个不同的属性到变量'front',但没有改变最终结果。(除了我们不想要的Scale,但确实改变了最终结果)

我确实将我们的代码更改为 iText7,但它比我们需要的复杂得多,而且它不起作用,所以我回到了 iTextSharp 代码和 sdk。

如果有人可以帮助我在不缩小页面的情况下打印整个页面,那就太好了。

标签: c#itext

解决方案


推荐阅读