TCPDF와 FPDI 템플릿을 함께 사용하면 일부 CSS 지원이 손실됩니다. 문제는 테두리 또는 배경색과 같은 것으로, 결국 PDF 템플릿 아래의 레이어로 끝납니다. TCPDF는 SetLineStyle()
을 사용하여 CSS 테두리/배경을 PDF로 변환하며 이것이 문제인 것으로 보입니다. 예를 들어FPDI 템플릿 및 CSS가 포함 된 TCPDF
:
$this->setSourceFile($filename); // /path/to/my/background.pdf
$imported_page = $this->ImportPage(1);
$this->useTemplate($imported_page);
...
$html = '<table style="border: 1px solid #000;"><tr><td style="background-color: #ff0000;">...</td></tr></table>';
$this->writeHTMLCell(45, 25, 160, 29, $html);
는 CSS 테두리를 렌더링하지 않습니다.
useTemplate()
이 제거되면 바로 테두리가 표시됩니다.
- 표/컨텐츠 층
- PDF 템플릿 층 (그룹)
- 테두리 및 배경 레이어 : 위에서 아래로 -
useTemplate()
와PDF 레이어 : 일러스트 레이터와 결과 PDF 파일을 분석하는 것은 흥미로운 일을 보여줍니다 (경로)
useTemplate()
없이
PDF 레이어 - 위에서 아래로 :
,363,210- 표/컨텐츠 층
- 테두리 및 배경 층 (경로)
일러스트 레이터에서 PDF 템플릿을 포함하는 레이어 그룹을 사용하지 않도록 설정, 테두리 및 배경이 표시됩니다.
불행히도 우리는 PDF 템플릿 레이어 그룹을 스택 맨 아래에 놓아 다른 모든 것들이 그 위에 렌더링되도록하는 방법을 찾지 못했습니다. 우리가 가지고 올 수있는 유일한 해결 방법은, startTemplate()
/endTemplate()
에 writeHTMLCell()
전화를 포장하고 printTemplate()
로 마무리되었다 :
$this->setSourceFile($filename); // /path/to/my/background.pdf
$imported_page = $this->ImportPage(1);
$this->useTemplate($imported_page);
...
$html = '<table style="border: 1px solid #000;"><tr><td style="background-color: #ff0000;">...</td></tr></table>';
$workaround_template = $this->startTemplate($w, $h);
$this->writeHTMLCell(45, 25, 160, 29, $html);
$this->endTemplate();
$this->printTemplate($workaround_template, $x, $y, $w, $h, 'T', 'L');
그래서 호기심은 :이 할 수있는 유일한 방법입니다, 또는 방법이 PDF 템플릿을 앞으로 모든 일의 맨 아래에 넣으시겠습니까?
미리 감사드립니다.