我有2個PDF,並不總是相同的頁數。將兩個文件並排合併爲1是可能的。通過這種方式,我的意思是來自這兩個pdf的第1頁將會在第2頁的同一頁上。如果其中一份PDF文件不夠長,我打算將合併的PDF文件的那一面留空。將2個PDF並排組合
我一直在尋找諸如iTextSharp等庫,但一直沒有任何運氣。如果可能的話,首選語言是C#。輸出可能甚至不需要是PDF格式,圖像就足夠了。謝謝。
我有2個PDF,並不總是相同的頁數。將兩個文件並排合併爲1是可能的。通過這種方式,我的意思是來自這兩個pdf的第1頁將會在第2頁的同一頁上。如果其中一份PDF文件不夠長,我打算將合併的PDF文件的那一面留空。將2個PDF並排組合
我一直在尋找諸如iTextSharp等庫,但一直沒有任何運氣。如果可能的話,首選語言是C#。輸出可能甚至不需要是PDF格式,圖像就足夠了。謝謝。
您可以從每個頁面創建所謂的Form XObject,然後在頁面上並排繪製這些XObject。
這可以在Docotic.Pdf library的幫助下完成。這是一個示例,顯示如何將兩頁並排放在其他文檔的頁面上。
該示例使用來自同一文檔兩頁,還可以進行擴展它們。您可能不需要縮放頁面。無論如何,這個樣本應該會給你一些啓動信息。
聲明:我爲開發Docotic.Pdf庫的公司工作。
下面的代碼演示瞭如何2 PDF文件並排使用XFINIUM.PDF庫結合:
FileStream input1 = File.OpenRead("input1.pdf");
PdfFile file1 = new PdfFile(input1);
PdfPageContent[] fileContent1 = file1.ExtractPageContent(0, file1.PageCount - 1);
file1 = null;
input1.Close();
FileStream input2 = File.OpenRead("input2.pdf");
PdfFile file2 = new PdfFile(input2);
PdfPageContent[] fileContent2 = file2.ExtractPageContent(0, file2.PageCount - 1);
file2 = null;
input2.Close();
PdfFixedDocument document = new PdfFixedDocument();
int maxPageCount = Math.Max(fileContent1.Length, fileContent2.Length);
for (int i = 0; i < maxPageCount; i++)
{
PdfPage page = document.Pages.Add();
// Make the destination page landscape so that 2 portrait pages fit side by side
page.Rotation = 90;
if (i < fileContent1.Length)
{
// Draw the first file in the first half of the page
page.Graphics.DrawFormXObject(fileContent1[i], 0, 0, page.Width/2, page.Height);
}
if (i < fileContent2.Length)
{
// Draw the second file in the second half (x coordinate is half page) of the page
page.Graphics.DrawFormXObject(fileContent2[i], page.Width/2, 0, page.Width/2, page.Height);
}
}
document.Save("SideBySide.pdf");
聲明:我認爲發展這個庫中的公司工作。
這應該可以使用任何通用PDF庫。特別是iTextSharp有可能。 – mkl