将两个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

将两个b5大小的pdf合并为一个合法页面

您可以从第二个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();
    }