我编写了一段使用PdfSharp库的代码.PdfSharp.Pdf.PdfDocument的实例已按预期保存到磁盘.显示正确的内容,但显示在错误的页面设置上.
PdfSharp的默认页面设置为:
我的问题是这些设置似乎覆盖了所需的设置.
我创建了PdfDocument类的实例,并将一个新的PdfPage类实例添加到其Pages集合属性中.然后,我像这样设置页面:
我很困惑.我知道Acrobat Reader中有一个选项,允许用户在不改变文本方向的情况下更改页面方向.无论我是否选中此选项,仍然会出现错误的设置.
有人有想法吗?谢谢!
出于某些奇怪的原因,PdfSharp似乎与以下两种情况不同:
示例1 - 即使在调用和调用PdfDocument.Save()方法之后页面设置正确,它似乎也没有将PdfPage类的实例与PdfDocument相关联.
var pdfDoc = new PdfDocument();
var pdfPage = pdfDoc.AddPage();
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape;
pdfPage.Size = PdfSharp.PageSize.Letter;
pdfPage.Rotate = 0;
pdfDoc.Save(filename);
Run Code Online (Sandbox Code Playgroud)
例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);
Run Code Online (Sandbox Code Playgroud)
例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);
Run Code Online (Sandbox Code Playgroud)
任何人都知道我在这里失踪了什么?就我而言,我似乎在这两个例子中也是这样做的.
解决方案是:
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);
Run Code Online (Sandbox Code Playgroud)
首先设置尺寸.
感谢您的任何意见和/或答案!
我检查了这个问题.在将"page.Orientation"设置为landscape之前,您似乎必须设置"page.Size".这是一个错误,因为这里的顺序无关紧要.
订单很重要 - 但解决方法很简单:在示例1中交换2行并完成(BTW:无需将Rotate设置为0).
PDFsharp论坛:http:
//forum.pdfsharp.net/
| 归档时间: |
|
| 查看次数: |
13453 次 |
| 最近记录: |