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

时间:2014-11-06 05:49:19

标签: c#

有没有办法将两个b5尺寸的pdf合并成单一的合法尺寸pdf。谷歌搜索后我没有找到任何解决方案。如何解决这个问题。我能用它做什么。我正在开发c#桌面应用程序,它将两个b5大小的pdf组合到单一的合法页面。一个左侧大小,另一个是右侧

e.g。输入

1. b5first.pdf  

   1234              

2. b5second 

   567     

输出应为

3. legal.pdf

   1234 567

3 个答案:

答案 0 :(得分:0)

您可以从第二个pdf中获取文本并将其放在首先放在您要放置的位置。 如果您使用的是iTextsharp,您可以执行类似

的操作
String text += PdfTextExtractor.GetTextFromPage(reader, pageno ,new LocationTextExtractionStrategy());

然后可以将字符串放在任何地方。

答案 1 :(得分:0)

如果您正在寻找开源解决方案,请检查此MetafileToEPSConverter以将元文件转换为EPS,然后使用epstopdf(包含在LyX中)或类似工具将EPS转换为PDF。

答案 2 :(得分:0)

    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();
    }