gpt4 book ai didi

itextsharp - 如何将页面缩放小于 1%?

转载 作者:行者123 更新时间:2023-12-04 21:46:36 28 4
gpt4 key购买 nike

我想缩放完整的 pdf 页面并插入到新文档中。这很好用。但是当因子小于 1% 时,我对比例因子有疑问。例如,当系数为 0.5% 时,不会发生缩放。使用 0.7% 的系数,文档(矩形)具有正确的大小,但缩放后的页面大于计算出的新大小。有没有办法连续缩放页面?看起来,在这种比例因子非常小的情况下,缩放只能分阶段进行。还是内部矩阵计算有问题?

float scale = 1.005f; //100,5%
var newWidth = originWidth*scale;
var newHeight = originHeight*scale;
PdfReader reader = new PdfReader(inputfile);
var newMediaBox = new Rectangle(newWidth, newHeight);
Document doc = new Document(newMediaBox);
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(outputfile,FileMode.Create));

doc.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page = writer.GetImportedPage(reader, 1); //page #1

cb.AddTemplate(page, scale, 0, 0, scale, 0, 0);

doc.Close();

另一种方式:我可以计算或读出缩放后的新尺寸吗?

谢谢。

最佳答案

默认情况下,iTextSharp 在添加模板时会使用四舍五入的两位小数。您可以通过将 ByteBuffer 类的 HIGH_PRECISION 静态变量设置为 true 来更改此设置,这将为您提供六位小数。我不知道这是否会影响您的整体应用程序性能,但我相信它不会。

iTextSharp.text.pdf.ByteBuffer.HIGH_PRECISION = true;

关于itextsharp - 如何将页面缩放小于 1%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306328/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com