将两个b5大小的pdf合并为一个合法页面
本文关键字:一个 合并 两个 b5 pdf | 更新日期: 2023-09-27 18:29:31
有没有办法将两个b5大小的pdf合并为一个合法大小的pdf。在谷歌上搜索后,我没有找到任何解决方案。如何解决这个问题。我正在开发c桌面应用程序,它将把两个b5大小的pdf合并为一个合法页面。一个是左侧尺寸,另一个是右侧
例如输入
1. b5first.pdf
1234
2. b5second
567
输出应为
3. legal.pdf
1234 567
您可以从第二个pdf中获取文本,并将其放在第一个位置。如果你正在使用iTextsharp,你可以做一些类似的事情
String text += PdfTextExtractor.GetTextFromPage(reader, pageno ,new LocationTextExtractionStrategy());
然后可以把绳子放在任何你想放的地方。
如果您正在寻找开源解决方案,请检查此MetafileToEPSConverter以将元文件转换为EPS,然后使用epstopdf(包含在LyX中)或类似工具将EPS转换为PDF。
public static void somefunction(string oldFile,string oldFile1,string pathout)
{
// open the reader
PdfReader reader = new PdfReader(oldFile);
PdfReader reader1 = new PdfReader(oldFile1);
Document document = new Document(PageSize.LEGAL.Rotate());
// open the writer
FileStream fs = new FileStream(pathout, FileMode.Create, FileAccess.Write);
PdfWriter writer = PdfWriter.GetInstance(document, fs);
document.Open();
// the pdf content
PdfContentByte cb = writer.DirectContent;
// create the new page and add it to the pdf
PdfImportedPage page = writer.GetImportedPage(reader, 1);
PdfImportedPage page1 = writer.GetImportedPage(reader1, 1);
cb.AddTemplate(page, 0, 0);
cb.AddTemplate(page1, 500, 0);
// close the streams and voilá the file should be changed :)
document.Close();
fs.Close();
writer.Close();
reader.Close();
reader1.Close();
}