gpt4 book ai didi

c# - PdfSharp - 在 Acrobat 中打开文档时错误的 PDF 页面设置

转载 作者:太空狗 更新时间:2023-10-29 20:02:17 28 4
gpt4 key购买 nike

我写了一段使用 PdfSharp 库的代码。创建的 PdfSharp.Pdf.PdfDocument 实例按预期保存到磁盘。显示了正确的内容,但页面设置错误。

PdfSharp 的默认页面设置是:

  1. PdfSharp.PageSizes.A4
  2. PdfSharp.PageOrientation.Portrait

我的问题是这些设置似乎覆盖了所需的设置。

我创建了 PdfDocument 类的实例,并将 PdfPage 类的新实例添加到它的 Pages 集合属性中。然后,我像这样设置页面:

  1. PdfDocument.Pages[0].Size = PdfSharp.PageSizes.Letter
  2. PdfDocument.Pages[0].Orientation = PdfSharp.PageOrientation.Landscape
  3. 我绘制字符串(这很好用)
  4. 我将文档保存到磁盘(这很好用)
  5. Process.Start(myPdfFilename) - 然后 Acrobat Reader 打开我的文件。
  6. 页面设置为 A4 - 纵向...

我很困惑。我知道 Acrobat Reader 中的一个选项允许用户更改页面方向而不更改文本方向。不管我是否勾选这个选项,错误的设置仍然存在。

有人有想法吗?谢谢!

最佳答案

由于某些奇怪的原因,PdfSharp 似乎与以下两个行为不同:

示例 1 - 它似乎没有将 PdfPage 类的实例关联到 PdfDocument,即使在调用 PdfDocument.Save() 方法时和调用 PdfDocument.Save() 方法后页面设置正确。

var pdfDoc = new PdfDocument();
var pdfPage = pdfDoc.AddPage();
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Rotate = 0;
pdfDoc.Save(filename);

示例 2 - 此处相同...

var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add();
pdfDoc.Pages[0].Orientation = PdfSharp.PageOrientation.Landscape;
pdfDoc.Pages[0].Size = PdfSharp.PageSize.Letter;
pdfDoc.Pages[0].Rotate = 0;
pdfDoc.Save(filename);

示例 3 - 这似乎解决了我的问题

var pdfPage = new PdfPage();
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Rotate = 0;
var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add(pdfPage);
pdfDoc.Save(filename);

有人知道我在这里缺少什么吗?就我而言,我似乎在这两个例子中都做了同样的事情。

解决方法是:

var pdfPage = new PdfPage();
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Rotate = 0;
var pdfDoc = new PdfDocument();
pdfDoc.Pages.Add(pdfPage);
pdfDoc.Save(filename);

先设置大小。

感谢您的任何评论和/或回答!

关于c# - PdfSharp - 在 Acrobat 中打开文档时错误的 PDF 页面设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1323737/

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