ITextSharp의 WriteCompatiblePdf 메서드 호출시 빈 PDF 생성

히테시 바트

안녕하세요 저는 아래 코드를 사용하고 있습니다. 일부 콘텐츠가 포함 된 일부 PDF를 업로드하고 업로드 한 후 업로드 된 PDF에 콘텐츠가 없습니다. 업로드 된 PDf가 비어 있습니다. 원본 PDF 버전을 정의 된 버전으로 변경하기 위해 아래 ItextSharp 방법을 사용하고 있습니다.

private int WriteCompatiblePdf(string fileName, FileUpload filePath)
        {
            string sNewPdf = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["InterfaxPath"]) + fileName;
            iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(filePath.FileBytes);
            // we retrieve the total number of pages
            int n = reader.NumberOfPages;
            // step 1: creation of a document-object
            iTextSharp.text.Document document = new iTextSharp.text.Document(reader.GetPageSizeWithRotation(1));
            // step 2: we create a writer that listens to the document
            iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, new FileStream(sNewPdf, FileMode.Create, FileAccess.ReadWrite));
            //write pdf that pdfsharp can understand
            writer.SetPdfVersion(iTextSharp.text.pdf.PdfWriter.PDF_VERSION_1_4);
            // step 3: we open the document
            document.Open();
            iTextSharp.text.pdf.PdfContentByte cb = writer.DirectContent;
            iTextSharp.text.pdf.PdfImportedPage page;
            int rotation;
            int i = 0;
            while (i < n)
            {
                i++;
                document.SetPageSize(reader.GetPageSizeWithRotation(i));
                document.NewPage();
                page = writer.GetImportedPage(reader, i);
                rotation = reader.GetPageRotation(i);                    
                cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);                    
            }
            // step 5: we close the document
            document.Close();
            return n;
        }

권장 사항이 있습니까?

mkl

OP는 샘플 "빈"파일을 제공했습니다.

결과적으로이 "빈"파일에는 원하는 내용이 포함되어 있습니다.

세부

문서의 페이지에는 다음과 같은 미디어 상자 정의가 있습니다.

/MediaBox[0 7072 612 7864]

따라서 가시 영역에는 0..612의 x 좌표와 7072..7864의 y 좌표가 있습니다. 하지만 가져온 페이지 내용을 추가 할 때 OP는 좌표 0,0에 명시 적으로 고정합니다.

cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);

따라서 이전 페이지의 내용은 y 좌표가 0..792 인 영역에 추가됩니다. 그래서 그들은 보이지 않습니다.

해결 방법

이 문제를 해결하는 방법에는 여러 가지가 있습니다.

  1. 정확한 좌표로 위치에 내용을 추가하십시오.

    cb.AddTemplate (페이지, 1f, 0, 0, 1f, x, y);

    여기서 xy이다 LeftBottomreader.GetPageSizeWithRotation(1)(a Rectangle); 또는

  2. Document생성자가 0,0을 기반으로 하도록 페이지 크기 사각형을 정규화합니다 . 또는

  3. 를 사용 PdfStamperPdfReader대신의 PdfWriter원하는 버전을 선택하는 데 사용합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ajax 호출로 서버에서 생성 된 PDF 표시

분류에서Dev

생성자 C ++에서 다른 개체의 메서드 호출

분류에서Dev

iTextSharp를 사용하여 두 개의 gridview에서 PDF 파일 생성

분류에서Dev

지시어에서 구성 요소의 호출 메서드

분류에서Dev

메서드 호출의 매개 변수 생성자

분류에서Dev

PHP 생성자가 "정의되지 않은 메서드 호출"을 발생시킵니다.

분류에서Dev

중첩 된 메서드 호출에서 새 트랜잭션을 시작 / 생성하려는 EJB의 중첩 된 메서드 호출

분류에서Dev

ITextSharp를 사용하여 html에서 만든 N 개의 pdf 파일을 다른 빈 pdf 파일로 병합

분류에서Dev

iTextSharp를 사용하여 PDF 문서의 ID 추출

분류에서Dev

JWT 생성시 빈 페이로드

분류에서Dev

JWS 생성시 빈 페이로드

분류에서Dev

Angular 서비스는 생성자의 자식 메서드를 호출합니다.

분류에서Dev

C ++의 Switch Case에서 생성 된 후 객체에 대한 메서드 호출

분류에서Dev

Angular 서비스는 생성자의 자식 메서드를 호출합니다.

분류에서Dev

동일한 클래스 내의 메서드에서 생성자 호출

분류에서Dev

자바 래퍼 : 슈퍼 생성자에서 호출 된 메서드 재정의

분류에서Dev

생성자에서 재정의 가능한 메서드 호출 문제

분류에서Dev

Angular2 / IONIC2의 생성자에서 메서드 호출

분류에서Dev

ArrayList 메서드가 호출시 오류를 생성합니다.

분류에서Dev

생성자에 void 메서드 호출

분류에서Dev

생성자를 메서드로 호출

분류에서Dev

itextsharp를 사용하여 생성 된 PDF에서 첫 번째 인쇄 명령시 오류 발생

분류에서Dev

빈 HTML 텍스트 영역 입력이 mPDF에서 생성 된 PDF에 표시되지 않습니다.

분류에서Dev

iTextsharp PDF 문서 속성

분류에서Dev

메서드를 호출하면 메서드 대신 Get ()의 결과가 생성됩니다.

분류에서Dev

생성자 메서드에서 메서드 호출

분류에서Dev

ponylang : 다른 생성자에서 생성자 메서드 호출?

분류에서Dev

Python에서 숫자의 빈도를 표시하는 단어 구름 생성

분류에서Dev

CakePHP에서 빈 값으로 시간 드롭 다운 생성

Related 관련 기사

  1. 1

    Ajax 호출로 서버에서 생성 된 PDF 표시

  2. 2

    생성자 C ++에서 다른 개체의 메서드 호출

  3. 3

    iTextSharp를 사용하여 두 개의 gridview에서 PDF 파일 생성

  4. 4

    지시어에서 구성 요소의 호출 메서드

  5. 5

    메서드 호출의 매개 변수 생성자

  6. 6

    PHP 생성자가 "정의되지 않은 메서드 호출"을 발생시킵니다.

  7. 7

    중첩 된 메서드 호출에서 새 트랜잭션을 시작 / 생성하려는 EJB의 중첩 된 메서드 호출

  8. 8

    ITextSharp를 사용하여 html에서 만든 N 개의 pdf 파일을 다른 빈 pdf 파일로 병합

  9. 9

    iTextSharp를 사용하여 PDF 문서의 ID 추출

  10. 10

    JWT 생성시 빈 페이로드

  11. 11

    JWS 생성시 빈 페이로드

  12. 12

    Angular 서비스는 생성자의 자식 메서드를 호출합니다.

  13. 13

    C ++의 Switch Case에서 생성 된 후 객체에 대한 메서드 호출

  14. 14

    Angular 서비스는 생성자의 자식 메서드를 호출합니다.

  15. 15

    동일한 클래스 내의 메서드에서 생성자 호출

  16. 16

    자바 래퍼 : 슈퍼 생성자에서 호출 된 메서드 재정의

  17. 17

    생성자에서 재정의 가능한 메서드 호출 문제

  18. 18

    Angular2 / IONIC2의 생성자에서 메서드 호출

  19. 19

    ArrayList 메서드가 호출시 오류를 생성합니다.

  20. 20

    생성자에 void 메서드 호출

  21. 21

    생성자를 메서드로 호출

  22. 22

    itextsharp를 사용하여 생성 된 PDF에서 첫 번째 인쇄 명령시 오류 발생

  23. 23

    빈 HTML 텍스트 영역 입력이 mPDF에서 생성 된 PDF에 표시되지 않습니다.

  24. 24

    iTextsharp PDF 문서 속성

  25. 25

    메서드를 호출하면 메서드 대신 Get ()의 결과가 생성됩니다.

  26. 26

    생성자 메서드에서 메서드 호출

  27. 27

    ponylang : 다른 생성자에서 생성자 메서드 호출?

  28. 28

    Python에서 숫자의 빈도를 표시하는 단어 구름 생성

  29. 29

    CakePHP에서 빈 값으로 시간 드롭 다운 생성

뜨겁다태그

보관