2013-09-04 2 views
1

우선,이 사이트에 대한 첫 번째 질문이며 나 같은 신생아를 도와 주신 모든 분들께 감사 드리고 싶습니다. 나는이 사이트에서 너무 많은 귀중한 정보를 발견했다! 그것은 내 프로그래밍 여정에 많은 도움을주었습니다.phpdocx generatePDF 알 수없는 이미지 유형 :? image = opentbs1

여기 내 질문이 있습니다. 동적 데이터로 .docx 템플릿을 채우고 이미지를 이미지에 삽입하려면 OpenTBS (PHP 클래스)를 사용했습니다.

화상

는 이미지의 대체 텍스트로 다음 명령을 입력하여 삽입된다

[onshow.logo_location;ope=changepic;tagpos=inside;adjust=100%;] 

I는 I가 삽입되는 이미지를 가리 $ logo_location로 설정 변수를 갖는다.

이 단계는 완벽하게 작동합니다. 올바른 위치에 적절한 이미지가있는 docx 파일이 만들어집니다.

phpdocx를 사용하여이 docx 파일을 PDF로 변환하려고하면 오류가 발생합니다.

require_once '../bbms/classes/phpdocx/classes/TransformDoc.inc'; 
require_once '../bbms/classes/phpdocx/classes/CreateDocx.inc'; 

$docx = new CreateDocx(); 

$document = new TransformDoc(); 
$document->setStrFile('199.docx'); 
$document->generatePDF(); 

내가 오류는 다음과 같습니다 : PDF를 생성하는 코드는 다음과 같다

PDF 파일을 생성 할 수 없습니다. '알 수없는 이미지 유형 :? image = opentbs1.'메시지와 함께 'DOMPDF_Exception'예외 스택 트레이스 : # 0 C : \ Wamp \ www \ bbms \ classes \ phpdocx \ pdf \ include \ image_frame_decorator.cls : C : \ wamp \ www \ bbms \ classes \ phpdocx \ pdf \ include \ image_cache.cls.php : 이미지 파일은 C : \ Wamp \ www \ bbms \ classes \ phpdocx \ pdf \ include \ frame_factory.cls.php() : Image_Cache :: resolve_url ('image = opentbs1', NULL, '', ' (199) : Image_Frame_Decorator -> __ construct (Object (Frame), Object (DOMPDF)) # 2 C : \ wamp \ www \ bbms \ classes \ phpdocx \ pdf \ include \ dompdf.cls.php (606) : Frame_Factory :: DOMPDF-> render() # 4 C : \ wamp \ www \ bambms \ classes \ phpdocx \ classes \ TransformDoc.inc (328) : DOMPDF-> render() # 4 C : \ discount_database \ test.php (23) : TransformDoc-> generatePDF() # 5 {main}

어떤 이유로 인해 docx 파일의 새 이미지 위치가 "? image = opentbs1"로 전달됩니다. image_cache.cls.php의 static 함수 resolve_url()에 전달합니다.

OpenTBS를 사용하여 생성되지 않은 일반 docx 파일을 변환하려고 시도했을 때이 오류가 발생하지 않았습니다.

는 방법 "파일/files_invoice_template.docx/미디어/워드/미디어/image1.png을"거기

: 나는 유효한 URL이 같을 것이다) (resolve_url로 전송되는 것을 확인하고는 다음과 같습니다 삽입 된 이미지의 URL/위치를 올바르게 설정하도록 openTBS를 구성 하시겠습니까?

감사합니다.

+0

'from ='매개 변수로 놀아보고 문제가 있는지 확인하십시오. –

+0

그래, @Dragon에 동의하고 방금 보았지만 from = 매개 변수가 지정되어있어 문제의 경로가 될 수 있습니다. –

+0

빠른 답변 감사합니다! from 매개 변수를 사용해 보겠습니다. – theCure

답변

1

필자는 OpenDBS에서 PHPDOCX를 사용하거나 PDF를 만들지는 않지만 PHPDOCX가 관계 이름을 이미지 인식에 하드 코딩 한 것 같습니다. 모든 이미지는 OpenTBS에 의해 전환 이후

foreach ($domImgs[0] as $dats) { 
     $datsFiltered = explode('"', $dats); 
     if (preg_match('/^\?image=rId/', $datsFiltered[1])) { // <--this is line 239 
      $datFiltered = explode('?image=', $dats); 
      $idImgs[] = substr($datFiltered[1], 0, -1); 
     } 
    } 

if (preg_match('/^\?image=(rId|opentbs)/', $datsFiltered[1])) { // <--this is line 239 

같은 것으로 접두어로 opentbs를 사용하지 않도록 : 그냥 GitHub의에 코드를 찾고, 당신이 라인 239 phpDocx/classes/TransformDoc.inc.php에서 변경하는 경우처럼 보인다 기존 요소와 충돌합니다.

정규 표현식 전문가가 아니므로이 의사 코드를 호출 할 수 있습니다. 그것이 올바른 방향으로 당신을 적어도 가리 키 길 바랍니다.