스트림에서 PDF를로드하고 파일 첨부를 추가하는 방법은 무엇입니까?

Davecz

MS SQL Report Server 웹 서비스를 사용하여 PDF 형식의 보고서를 생성하고 있습니다.

byte[] Input;
ReportServer report = new ReportServer(serverUrl + @"/ReportExecution2005.asmx", reportPath);
Input = report.RenderToPDF(reportParamNames, reportParamValues);

이 서비스는 pdf 파일이있는 바이트 배열을 반환합니다.

iTextSharp에이 바이트 배열로드가 필요합니다.

using (MemoryStream ms = new MemoryStream(Input)) {
    Document doc = new Document();
    PdfWriter writer = PdfWriter.GetInstance(doc, ms);
    doc.Open();
    ...
}

괜찮아 보이지만이 PDF에 첨부 파일을 추가하려고합니다.

PdfFileSpecification pfs = PdfFileSpecification.FileEmbedded(writer, xmlInputFile, xmlFileDisplayName, null);
writer.AddFileAttachment(pfs);

이것도 괜찮아 보이지만 스트림을 파일에 저장하면 결과 pdf가 올바르지 않습니다.

첨부 파일은 항상 XML 파일이므로 메모리에 생성해야하며 파일 시스템에는 포함되지 않습니다. iTextSharp로 어떻게 할 수 있습니까?

브루노로와 기

나는 읽었다 :

이 서비스는 pdf 파일이있는 바이트 배열을 반환합니다. iTextSharp에이 바이트 배열로드가 필요합니다.

using (MemoryStream ms = new MemoryStream(Input))
{
  Document doc = new Document();
  PdfWriter writer = PdfWriter.GetInstance(doc, ms);
  doc.Open();
  ...
}

괜찮아 보인다

이것은 괜찮지 않습니다 . 당신은 그러나 당신이 사용하고, 기존의 PDF 파일에 첨부 파일을 추가 할 DocumentPdfWriter만들 클래스를하는 처음부터 새 PDF 문서를 .

설명서를 읽으십시오 . 다양한 클래스와 사용시기에 대한 개요를 제공하는 편리한 표 (6.1)가 있습니다.

PdfReaderPdfStamper클래스에 대한 설명을 인용합니다 .

PdfReader: PDF 파일을 읽습니다. 이 클래스의 인스턴스를 다른 PDF 조작 클래스 중 하나에 전달합니다.

PdfStamper: 하나의 PDF 문서 만 조작합니다. 절대 위치에 콘텐츠를 추가하거나 추가 페이지를 추가하거나 필드를 채우는 데 사용할 수 있습니다. 모든 대화 형 기능은 명시 적으로 제거하는 경우 (예 : 양식 병합)를 제외하고는 유지됩니다.

우리는 당신이 잘못을하고 있다는 것을 설립 : 당신은 사용해야 PdfReader하고 PdfStamper대신 DocumentPdfWriter. 이제 몇 가지 예를 살펴 보겠습니다 .

PdfReader reader = new PdfReader(pdf_bytes);
using (var ms = new MemoryStream()) {
    using (PdfStamper stamper = new PdfStamper(reader, ms)) {
        PdfFileSpecification pfs = PdfFileSpecification.FileEmbedded(
            stamper.Writer, xmlInputFile, xmlFileDisplayName, null);
        stamper.AddFileAttachment(pfs);
    }
    reader.Close();
    return ms.ToArray();
}

보시다시피 PdfReader메모리에 보관 된 바이트를 사용하여 인스턴스를 만듭니다 . 그런 다음 을 사용하여 바이트 PdfStamper를 사용하는 새 파일을 만듭니다 MemoryStream.

살펴 보시기 바랍니다 에 StackOverflow에 최고의 iText를 질문 보다 답변을.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이미지를 PHP HTML 메일에 첨부 파일로 추가하는 방법은 무엇입니까?

분류에서Dev

이메일 의도 Android에서 첨부 파일 추가를 활성화하는 방법은 무엇입니까?

분류에서Dev

파일에서 텍스트를 읽고 내림차순으로 정렬하는 방법은 무엇입니까?

분류에서Dev

addAttachmentData를 호출 할 때 첨부 파일에서 경로를 제거하는 방법은 무엇입니까?

분류에서Dev

storage.rules 및 firestore.rules 파일을 첨부하지 않고 Firebase 호스팅에 웹 사이트를 업로드하는 방법은 무엇입니까?

분류에서Dev

http로 dart에서 mailgun을 사용하여 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

UNIX에서 HTML 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

텍스트 파일에서 숫자를 추가하고 인쇄하는 방법은 무엇입니까?

분류에서Dev

SendGrid를 사용하여 파일을 이메일에 첨부 파일로 첨부하는 방법은 무엇입니까?

분류에서Dev

디스크에 다운로드하지 않고 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

SendGrid (자바)를 통해 Google App Engine에서 보낸 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

분류에서Dev

모든 입력 type = "file"에 업로드하기 전에 파일 크기를 확인하는 이벤트를 첨부하는 방법은 무엇입니까?

분류에서Dev

ejabberd를 사용하여 MUC 룸에서 첨부 파일을 보내는 방법은 무엇입니까?

분류에서Dev

ID / 서버 ID를 첨부 파일에 저장하는 방법은 무엇입니까?

분류에서Dev

명령 줄에서 파일에 텍스트를 추가하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

카피 바라를 사용하여 숨겨진 입력에서 파일 첨부를 테스트하는 방법은 무엇입니까?

분류에서Dev

Windows 7에서 VHDX 파일을 첨부하는 방법은 무엇입니까?

분류에서Dev

첨부 파일이있는 Outlook 이메일에서 Excel로 정보를 실시간으로 자동 추출하는 방법은 무엇입니까?

분류에서Dev

REST API를 사용하여 sobject 레코드에 파일 및 첨부 파일을 업로드하는 방법은 무엇입니까?

분류에서Dev

단어별로 파일에서 모음 수를 계산하고 결과를 단어에 첨부하는 방법은 무엇입니까?

분류에서Dev

JavaFX에서 텍스트 파일의 데이터를 ComboBox에 추가하는 방법은 무엇입니까?

분류에서Dev

PDF 파일에서 벡터를 추출하는 방법은 무엇입니까?

분류에서Dev

Mozilla Thunderbird에서 이메일에 이벤트를 첨부하는 방법은 무엇입니까?

분류에서Dev

파일에서 스크립트를로드하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

bash 변수를 json 파일에 추가하는 방법은 무엇입니까?

분류에서Dev

sudoers 파일에 사용자를 추가하는 방법은 무엇입니까?

분류에서Dev

Bash의 파일에 티를 추가하는 방법은 무엇입니까?

분류에서Dev

json 데이터를 파일에 추가하는 방법은 무엇입니까?

분류에서Dev

Bash의 파일에 티를 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    이미지를 PHP HTML 메일에 첨부 파일로 추가하는 방법은 무엇입니까?

  2. 2

    이메일 의도 Android에서 첨부 파일 추가를 활성화하는 방법은 무엇입니까?

  3. 3

    파일에서 텍스트를 읽고 내림차순으로 정렬하는 방법은 무엇입니까?

  4. 4

    addAttachmentData를 호출 할 때 첨부 파일에서 경로를 제거하는 방법은 무엇입니까?

  5. 5

    storage.rules 및 firestore.rules 파일을 첨부하지 않고 Firebase 호스팅에 웹 사이트를 업로드하는 방법은 무엇입니까?

  6. 6

    http로 dart에서 mailgun을 사용하여 첨부 파일을 추가하는 방법은 무엇입니까?

  7. 7

    UNIX에서 HTML 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

  8. 8

    텍스트 파일에서 숫자를 추가하고 인쇄하는 방법은 무엇입니까?

  9. 9

    SendGrid를 사용하여 파일을 이메일에 첨부 파일로 첨부하는 방법은 무엇입니까?

  10. 10

    디스크에 다운로드하지 않고 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

  11. 11

    SendGrid (자바)를 통해 Google App Engine에서 보낸 이메일에 첨부 파일을 추가하는 방법은 무엇입니까?

  12. 12

    모든 입력 type = "file"에 업로드하기 전에 파일 크기를 확인하는 이벤트를 첨부하는 방법은 무엇입니까?

  13. 13

    ejabberd를 사용하여 MUC 룸에서 첨부 파일을 보내는 방법은 무엇입니까?

  14. 14

    ID / 서버 ID를 첨부 파일에 저장하는 방법은 무엇입니까?

  15. 15

    명령 줄에서 파일에 텍스트를 추가하는 가장 빠른 방법은 무엇입니까?

  16. 16

    카피 바라를 사용하여 숨겨진 입력에서 파일 첨부를 테스트하는 방법은 무엇입니까?

  17. 17

    Windows 7에서 VHDX 파일을 첨부하는 방법은 무엇입니까?

  18. 18

    첨부 파일이있는 Outlook 이메일에서 Excel로 정보를 실시간으로 자동 추출하는 방법은 무엇입니까?

  19. 19

    REST API를 사용하여 sobject 레코드에 파일 및 첨부 파일을 업로드하는 방법은 무엇입니까?

  20. 20

    단어별로 파일에서 모음 수를 계산하고 결과를 단어에 첨부하는 방법은 무엇입니까?

  21. 21

    JavaFX에서 텍스트 파일의 데이터를 ComboBox에 추가하는 방법은 무엇입니까?

  22. 22

    PDF 파일에서 벡터를 추출하는 방법은 무엇입니까?

  23. 23

    Mozilla Thunderbird에서 이메일에 이벤트를 첨부하는 방법은 무엇입니까?

  24. 24

    파일에서 스크립트를로드하는 가장 좋은 방법은 무엇입니까?

  25. 25

    bash 변수를 json 파일에 추가하는 방법은 무엇입니까?

  26. 26

    sudoers 파일에 사용자를 추가하는 방법은 무엇입니까?

  27. 27

    Bash의 파일에 티를 추가하는 방법은 무엇입니까?

  28. 28

    json 데이터를 파일에 추가하는 방법은 무엇입니까?

  29. 29

    Bash의 파일에 티를 추가하는 방법은 무엇입니까?

뜨겁다태그

보관