문제

멋진 머리글/바닥글이 포함된 일부 PDF 송장 및 PDF 작업표를 생성해야 하는 PHP 응용 프로그램이 있습니다.일부 Stackoverflow 사용자는 TCPDF를 사용하여 PDF 문서를 만들 것을 권장합니다.저는 연구를 통해 PDF 생성에 대한 두 가지 접근 방식을 발견했습니다.

1) 다음과 같이 프로그래밍 방식으로 PDF 형식을 지정합니다.

    $tcpdf->SetFillColor(255, 0, 0);
    $tcpdf->SetTextColor(255);
    $tcpdf->SetDrawColor(128, 0, 0);
    $tcpdf->SetLineWidth(0.3);
    $tcpdf->SetFont('', 'B');

2) HTML을 PDF로 변환

어떤 접근 방식을 사용해야 할지 어떻게 결정합니까?

도움이 되었습니까?

해결책

추천 할 수 있습니다 zend_pdf, 이것은 당신의 분류에 따른 프로그래밍 방식입니다.

HTML 추상화는 좋지만 완전 지오메트리 기반 드로잉 API의 전체 힘과 제어가 있다고 생각하지 않습니다. 상자에서 UTF-8을 지원하지 않는 FPDF와 같은 라이브러리에주의를 기울이고 가난한 사람의 구문 분석기를 사용하여 HTML을 PDF로 '변환'하십시오.

응용 프로그램과 관련하여 템플릿 송장을 생성하는 시스템을 생성했습니다. 내 사용자는 zend_pdf에 의해 추출되는 PDF 템플릿을 업로드 할 수 있습니다. 그런 다음이 템플릿은 생성 된 송장의 모든 페이지에 사용되므로 쉽게 사용자 정의 할 수 있습니다.

내 청중은 주로 이러한 템플릿을 생산할 수있는 그래픽 디자이너이므로 여기에서는 적절한 솔루션이었습니다. 청중이 HTML에만 익숙하다면 'HTML을 PDF로 변환하는 것이 가장 좋은 방법 일 수 있습니다.

다른 팁

나는 항상 PDF를 동적으로 만드는 것이지만 최종 사용자 도구를 사용하여 편집 할 수있는 템플릿을 기반으로하거나 프로그래머가 될 필요없이 최소한 편집 할 수 있습니다. 귀하의 경우, 그것은 아마도 HTML 일 것입니다. 나에게 이상적인 솔루션은 사무실 템플릿을 사용하여 프로그래밍 방식으로 값으로 채우고 기술적으로 가능할 때마다 PDF로 출력하는 것입니다. 나는 PHP에서 사무실 템플릿 채우기 부품을 사용합니다. TBSOOO 그리고 그것은 꽤 잘 작동합니다.

문서를 처음부터 생성하는 것보다 템플릿 기반 접근법을 사용하는 주된 이유 : 사용자는 템플릿을 적합한대로 설계 할 수 있으며 설계가 변경 될 때는 필요하지 않습니다. (그리고 그것 ~ 할 것이다 하루를 변경해야합니다.) 삽입 된 데이터를 어떤 식 으로든 변경하거나 확장해야 할 때만 프로그래머가 작동합니다. 그것은 당신의 등에 큰 작업량입니다.

안녕하세요 두 가지 옵션이 있습니다. 당신이 사용할 수있는 dompdf,이를 통해 문서를 일반 HTML 문서로 설계하고 CSS로 스타일을 지정할 수 있습니다. 이 문서를 PDF로 바꿀 수 있습니다. 내 경험은 좋았습니다. zend_view를 사용하여 일반 HTML 페이지를 렌더링하고 이것을 PDF로 전환합니다. 이렇게하면 매우 유연한 템플릿이 있으며 Beacuse는 HTML 생성보기에서 모든 종류의 디스플레이 결정을 내릴 수 있습니다.

→ 참조 CSS 호환성 목록.

또는 당신은 사용할 수 있습니다 LIVEDOCX. 이것은 또한 템플릿 기반 접근 방식을 허용하지만보다 엄격하고 HTML이 없습니다. ㅏ Zend 프레임 워크 통합 가고 있습니다.

나는 세 가지 접근 방식 모두에 대해 풍부한 경험을 갖고 있습니다.

  1. TCPDF를 사용하여 프로그래밍 방식으로 문서 생성(FPDF에서 파생되었지만 기본적으로 UTF-8을 지원함).저는 Zend Framework의 열렬한 팬이지만 Zend_Pdf는 아직 이러한 방식으로 사용할 수 있는 기능 세트가 충분하지 않다는 점에 유의할 필요가 있습니다.

  2. 그래픽 디자이너에게 템플릿을 생성하고 Zend_Pdf를 사용하여 이를 로드한 다음 추가 콘텐츠를 추가하도록 합니다.Zend_Pdf(1.10.2 - 1.10.7)는 새 페이지를 인스턴스화하여 문서에 추가하려고 할 때를 제외하고는 이 경우 상당히 잘 작동했습니다. 이로 인해 많은 오류가 발생했습니다.

  3. htmldoc를 사용하여 HTML을 PDF로 변환합니다.이 접근 방식은 형편없었지만 주로 htmldoc의 제한 때문이었습니다.

나는 HTML을 PDF로 변환하는 데 TCPDF를 사용하지 않았지만 코드의 전반적인 품질로 판단하면 꽤 좋은 작업이 될 것이라고 추측합니다.(나는 RTL 문자 세트, 중국어 등의 그래픽이 풍부한 문서를 렌더링하는 것을 포함하여 TCPDF를 한계까지 밀어붙였고 완벽하게 수행되었습니다.)따라서 프로그래밍 방식으로 수행하기로 결정했다면 TCPDF를 사용하는 것이 좋습니다. 그러나 그래픽 디자이너가 제공한 멋진 템플릿이 있고 그 위에 내용을 추가하려는 경우 Zend_Pdf로 로드하고 거기에서 수정하는 것이 합리적인 선택입니다. 여전히 단어 줄 바꿈 및 기타 기본 사항을 구현하게 됩니다.

또한 HTML을 PDF로 변환하는 것이 좋습니다.

  • 깨닫기가 더 쉽습니다
  • 나중에 레이아웃/디자인을 변경하는 것이 더 쉽습니다.
  • 아마도 페이지의 일부 HTML을 재사용 할 수 있습니다

한 번은 웹 사이트를 위해 PDF 생성을 만들었을 때 html2ps 그런 다음 PostScript를 나중에 PDF로 변환했습니다.

프로그래밍 방식 형식을 제안합니다.

.NET 세계에서 나는 HTML에서 PDF 변환기에서 분명히 부정적인 경험을 가졌다. 그들은 두 가지 범주에 속하는 것 같습니다.

HTML을 '구문 분석'하고 그것을 PDF로 바꾸려고합니다. 이것들은 종종 스타일 시트 및 테이블 기반 레이아웃 외에는 무엇이든 지원하는 것과 같은 정말 근본적인 기능이 부족합니다.

HTML을 이미지에 '인쇄'하고 PDF에 넣는 것. 이들은 실제로 괜찮은 문서를 생성 할 수 있습니다. 브라우저를 라이브러리에 연결하여 스레딩 문제와 성능이 저하되어 작동하는 것 같습니다.

나는 직접 PDF API에 대한 평범한 경험을 가지고 있었지만 PHP는이 전선에 훨씬 더 나은 라이브러리를 가지고있는 것으로 보입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top