2013-05-01 4 views
0

나는 문서를 관리하는 방법을 생각해 내고있다.온라인으로 PDF를 작성 하시겠습니까?

현재 우리는 HTML로 문서 템플릿을 디자인 한 다음 클라이언트가 CKEditor를 사용하여 빈 칸을 채우도록하고 DOMPDF를 사용하여 문서를 인쇄 할 수 있도록 HTML을 PDF로 변환합니다.

이 방법은 정상적으로 작동하지만 잘못 될 수있는 곳이 많습니다. CKEditor는 HTML을 약간 헷갈립니다. DOMPDF가 항상 완벽하게 변환하지는 않습니다. 특히, 우리는 머리말과 꼬리말을 올바르게 할 수 없습니다.

우리의 최종 목표는 PDF를 만드는 것이므로이 모든 것을 수행하는 더 좋은 방법이 있습니까? 예를 들어 PostScript 또는 LaTeX로 문서를 디자인 한 다음 JavaScript를 사용하여 웹 사이트 (외부 프로그램 없음)에 직접 PDF를 렌더링 할 수 있습니다. 일부 텍스트 자리 표시 자와 함께 클라이언트가 필요한 부분을 채울 수 있으므로, 그런 다음 저장하고 내보내십시오.

"채우기"부분은 감사 및 버전 관리를 위해 입력 한 내용을 추적해야하기 때문에 우리 사이트에 머물러야합니다. 템플릿을 가정

$pdf_template_path = dirname(__FILE__) . '/pdf_form_template.pdf'; 
$pdftk = '/usr/bin/pdftk'; 
$pdf_name = substr($xfdf_file_path, 0, -4) . 'pdf'; 
$result_pdf = $result_directory . '/' . $pdf_name; 
$command = "$pdftk $pdf_template_path fill_form $xfdf_file_path output $result_pdf flatten"; 

:

+0

채울 수있는 PDF 양식이 있습니다 –

+0

HTML에서 데이터를 제출하고 PDF를 서버 측에 어셈블하는 방법은 어떻습니까? – Rafa

+0

@YoriKusanagi : 응? 이미 내가하고있는 것과는 다른 점이 무엇입니까? 우리는 HTML 템플릿을 직접 만들고 HTML을 WYSIWYG 편집기에서 렌더링하여 클라이언트가 마음의 내용을 편집 할 수있게 한 다음 PDF (서버 측)로 변환하는 단추를 클릭합니다. – mpen

답변

0

먼저 당신이 (createXFDF() 함수를 통해) XFDF 형식으로 HTML 양식 데이터를 처리해야합니다, 다음과 같은 코드를 사용하는 것이 좋습니다 서버에 PDF를 작성하여 데이터를 기록하십시오.

> more information here

+0

또한 PDF로 XFDF를 처리하기 위해 PDFTK를 사용하지만 이것이 반드시 최선의 방법은 아닙니다.문제의 일부는 문서의 미리 정의 된 위치를 채우고 있다고 가정한다는 것입니다.이 질문은이 경우 또는 기존 단락이나 텍스트 줄 안의 텍스트를 채울 것인지 여부를 말하지 않습니다. –

+0

OP에 온라인 양식이 없습니다 .. – Ejaz

+0

Ejay가 맞습니다. 양식 필드가 많지 않아 문서의 일부를 채우거나 필요에 따라 약간만 편집 할 수있는 WYSIWYG 편집기가 있습니다. – mpen

1

이 질문에 대한 가장 좋은 대답은 클라이언트가 양식에 추가하는 데이터의 종류에 따라 달라집니다.

다른 고정 소수점 필드에 정보를 입력하는 경우 가장 쉬운 방법은 채울 수있는 PDF를 작성하고 XFDF를 사용하여 채우고 PDFTK을 펼쳐서 평평하게 만드는 것입니다. 코드 샘플은 my answer to another question입니다.

그러나 고객이 줄이나 단락의 중간에 공백을 채우는 경우 채울 수있는 PDF를 쉽게 사용할 수 없습니다. PostScript 나 LaTeX를 사용하는 것이 좋습니다. 원시 파일에 어떤 종류의 토큰을 남긴 다음 웹 페이지에서 제출 된 데이터로 즉석에서 대체하면 양식이 완료 될 때 양식을 제출할 때 ps2pdf 또는 latex2pdf (또는 다른 변환 프로그램)으로 전화 할 수 있습니다 PDF.

편집 이것은 "외부 프로그램 없음"이 의미하는 바가 아닙니다. 원래 질문에서 "외부 프로그램 없음"을 묻지 만, 이런 종류의 변환을 수행하는 PHP 라이브러리가없는 것으로 보이는 many other sources say이 있습니다.

+0

"외부 프로그램 없음"은 고객이 문서를 오프라인으로 채우는 것을 원하지 않는다는 의미였습니다. 즉, 사이트를 떠난 후에는 해당 문서에 대한 행동을 추적 할 수 없습니다. 문서에 대한 모든 변경 사항을 기록 할 수 있도록 사이트의 모든 정보를 직접 입력해야합니다. PDF를 내 보낸 후 "잠겨"쉽게 편집 할 수없는 것이 좋습니다. – mpen

+0

데이터는 종종 단락의 중간에 있지만, 텍스트가 입력 내용에 "단단한"것이 중요하지 않다고 생각합니다. 즉, 고정 너비의 텍스트 슬롯을 남겨 두는 것이 좋습니다. – mpen

관련 문제