2

PdfReaderオブジェクトをに変換する方法を教えてもらえますPdfDocumentか?

PdfDocumentディスク ファイルを読み取り、メモリ ストリームに変換しましたが、C# プログラムの他のメソッドとして必要です。

iTextSharpの代わりに使用するアプリケーションを変換していますPdfSharp

MemoryStream pdfstream = new MemoryStream();

/* Convert the attachment to an byte array */
byte[] pdfarray = (byte[])dr["Data"];
/* Write the attachment into the memory */
pdfstream.Write(pdfarray, 0, pdfarray.Length);
/* Set the memorystream to the beginning */
pdfstream.Seek(0, System.IO.SeekOrigin.Begin);

/* Open the pdf document */
PdfSharp.Pdf.PdfDocument document = PdfSharp.Pdf.IO.PdfReader.Open(pdfstream, PdfDocumentOpenMode.Modify);
//iTextSharp.text.Document doc1 = iTextSharp.text.pdf.PdfReader.GetStreamBytes(
//ITS.pdf.PdfReader rdr = ITS.pdf.PdfReader(

string filename = DateTime.Now.Ticks.ToString() + "_" + dr["AttachmentName"].ToString();
string path = Path.Combine(FolderName, filename);

document.Save(path);
4

1 に答える 1

2

私はあなたがこのようなことをすることができると思います(コードが実行またはテストされていないことに注意してください、微調整が必​​要かもしれません):

using (MemoryStream ms = new MemoryStream())
{
    Document doc = new Document(PageSize.A4, 50, 50, 15, 15);

    PdfWriter writer = PdfWriter.GetInstance(doc, ms);

    using (var rdr = new PdfReader(filePath))
    {
        PdfImportedPage page;

        for(int i = 1; i <= rdr.PageCount; i++)
        {
            page = writer.GetImportedPage(templateReader, i)

            writer.DirectContent.AddTemplate(page, 0, 0);

            doc.NewPage();
        }
    }
}

これにより、PDFがページごとに読み込まれ、ドキュメントに出力されます。

于 2013-02-12T12:23:32.057 に答える