0

aspose.pdf.generator を使用してメモリ内にさまざまな PDF ドキュメントを構築する既存のプロセスがあります。次に、プロセスは PDF ファイルを連結し、最後に 1 つの PDF をユーザーに返します。

現在、既存の Word ドキュメントを連結プロセスに挿入する必要があります。Word ドキュメントを Aspose.Words ドキュメントとしてメモリにインポートできます。Aspose.Words ドキュメントを Aspose.PDF.Generator ドキュメントのさまざまな場所に挿入するにはどうすればよいですか? 各 Aspose.Words ドキュメントを Aspose.PDF.Generator ドキュメントに変換できれば、プロセスにメソッドをきれいに挿入できます。

このオブジェクトvar msDoc = new Aspose.Words.Document(ms);は、Aspose.PDF.Generatorr.Pdf タイプの tdocs.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;
4

1 に答える 1

0

Aspose.Words.Save(stream, Aspose.Words.SaveFormat.Pdf) メソッドを使用して、Word ドキュメントを PDF (ストリーム) に保存できます。そして、このストリームを pdfEditor.Concatenate() で使用します。

tdoc は、pdf ドキュメントに関する情報を含むクラスであると想定しています。ブール値メンバー (IsPdf) を 1 つ追加することで、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++;
}
于 2015-01-11T05:53:04.360 に答える