使用 iTextSharp 合并不同方向的 PDF
Merging PDFs with different orientations with iTextSharp
我有两个方向不同的 PDF 文件(第一个文档是 A4 格式,第二个是 A4 横向)。
我想合并它们,但我需要保留每个页面的原始方向。
我尝试使用以下代码进行旋转:
float width = pdfImportedPage.Width;
float height = pdfImportedPage.Height;
if (width > height)
{
PdfDictionary pageDict = reader.GetPageN(documentPage);
pageDict.Put(PdfName.ROTATE, new PdfNumber(270));
}
旋转后我调用 AddPage 方法如下:
copy.AddPage(pdfImportedPage);
但结果是一个 A4 格式的文档,第二部分的文本超出了页面。如果第二部分的文本是水平的,对我来说很好,但我还需要页面的方向与原始文档相同(水平)。
我使用的是 iTextSharp 5.5.13 版。
我刚刚发现问题出在代码的另一部分,在那之后,当我添加页码时。
顺便说一下,保持页面方向的一个好方法是使用 SetPageSize 和 NewPage 方法,就像这段代码:
for (int page = 1; page <= reader.NumberOfPages; page++)
{
copy.RotateContents = true;
doc.SetPageSize(reader.GetPageSizeWithRotation(page));
doc.NewPage();
importedPage = copy.GetImportedPage(reader, page);
copy.AddPage(importedPage);
}
我有两个方向不同的 PDF 文件(第一个文档是 A4 格式,第二个是 A4 横向)。 我想合并它们,但我需要保留每个页面的原始方向。
我尝试使用以下代码进行旋转:
float width = pdfImportedPage.Width;
float height = pdfImportedPage.Height;
if (width > height)
{
PdfDictionary pageDict = reader.GetPageN(documentPage);
pageDict.Put(PdfName.ROTATE, new PdfNumber(270));
}
旋转后我调用 AddPage 方法如下:
copy.AddPage(pdfImportedPage);
但结果是一个 A4 格式的文档,第二部分的文本超出了页面。如果第二部分的文本是水平的,对我来说很好,但我还需要页面的方向与原始文档相同(水平)。
我使用的是 iTextSharp 5.5.13 版。
我刚刚发现问题出在代码的另一部分,在那之后,当我添加页码时。 顺便说一下,保持页面方向的一个好方法是使用 SetPageSize 和 NewPage 方法,就像这段代码:
for (int page = 1; page <= reader.NumberOfPages; page++)
{
copy.RotateContents = true;
doc.SetPageSize(reader.GetPageSizeWithRotation(page));
doc.NewPage();
importedPage = copy.GetImportedPage(reader, page);
copy.AddPage(importedPage);
}