将 aspose.pdf 文档转换为 aspose.pdf.generator 文档

Convert aspose.pdf document to aspose.pdf.generator document

我有一个使用 aspose.pdf.generator 在内存中构建各种 PDF 文档的现有流程。最后,该过程将 PDF 文件和 returns 一个 PDF 连接到用户。

我现在需要将现有的 Word 文档插入串联过程。我可以将 Word 文档作为 Aspose.Words 文档导入内存。如何将 Aspose.Words 文档插入到我的 Aspose.PDF.Generator 文档的不同位置?如果我可以将每个 Aspose.Words 文档转换为 Aspose.PDF.Generator 文档,我就可以将该方法干净地插入到我的过程中。

此对象 var msDoc = new Aspose.Words.Document(ms); 需要插入 tdocs.pdf 属性 类型 Aspose.PDF.Generatorr.Pdf.

        PdfFileEditor pdfEditor = new PdfFileEditor();
        MemoryStream outStream = new MemoryStream();
        MemoryStream[] streamArray = new MemoryStream[tdocs.Count];

        int i = 0;
        foreach (var tdoc in tdocs)
        {
            MemoryStream inputStream1 = new MemoryStream();
            tdoc.Pdf.Save(inputStream1);
            streamArray[i] = inputStream1;
            i++;
        }
        pdfEditor.Concatenate(streamArray, outStream);

        using (FileStream file = new FileStream(filePath, FileMode.Create, System.IO.FileAccess.Write))
        {
            byte[] bytes = new byte[outStream.Length];
            outStream.Read(bytes, 0, (int)outStream.Length);
            file.Write(bytes, 0, bytes.Length);
            outStream.Close();
        }

        return fileName;

您可以使用 Aspose.Words.Save(stream, Aspose.Words.SaveFormat.Pdf) 方法将 Word 文档保存为 PDF(流)。并在 pdfEditor.Concatenate().

中使用此流

我假设 tdoc 是您 class 包含有关 pdf 文档的信息。您可以通过添加 1 个布尔成员 (IsPdf) 来修改它以处理 PDF 和 Word 文档。

foreach (var tdoc in tdocs)
{
    if (tdoc.IdPdf)
    {
        MemoryStream inputStream1 = new MemoryStream();
        tdoc.Pdf.Save(inputStream1);
        streamArray[i] = inputStream1;

    }
    else
    {
        // If it is a Word document, use Aspose.Words.Document.Save()
        Aspose.Words.Document wordDoc = new Aspose.Words.Document(tdoc.wordFilePath);
        streamArray[i] = new MemoryStream();
        wordDoc.Save(streamArray[i], Aspose.Words.SaveFormat.Pdf);
    }
    i++;
}