2016-11-24 1 views
1

TCPDF PHP 라이브러리를 사용하여 내 svg를 pdf로 변환 중입니다. 내 svg 본문, div 및 텍스트에 일부 의견을 표시하는 스팬 함께 foreignObject 있습니다. 브라우저에서 SVG를 열면 모양이 좋아 보이지만 TCPDF를 사용하여 PDF로 변환하면 텍스트가 회색 배경으로 표시되는 빈 공간이 생깁니다.SVG의 Foreignobject가 변환되지 않고 TCPDF에 의해 PDF로 표시됩니다.

+0

Welcome to Stackoverflow. 질문을 향상 시키려면 다음 링크를 읽으십시오 : [Tour] (http://stackoverflow.com/tour) | [묻는 방법] (http://stackoverflow.com/help/how-to-ask) | [최소, 완전하고 검증 할 수있는 예제] – Tom

답변

1

SVG에서 <foreignObject>을 사용하는 경우 SVG를 렌더링 할뿐만 아니라 HTML도 렌더링하는 변환기가 필요합니다. 아마 누군가 HTML을 지원하는 SVG 변환기를 판매 할 것이지만, 나는 그것을 인식하지 못하고있다.

SVG 표준은 <foreignObject> 요소를 제공하므로 사용자가 SVG 이외의 콘텐츠를 SVG에 포함시킬 수 있습니다. SVG 표준은 foreignObject에 배치 될 수있는 특정 유형의 컨텐츠를 지원하기 위해 SVG 렌더링을 요구하지 않습니다.

브라우저가 foreignObject에서 HTML을 지원한다는 사실은 분명히 HTML 뷰어의 결과로 발생합니다.

foreignObject의 사용을 피하는 것 외에 명확하고 확실한 해결 방법이 없습니다.

SVG 내용이 벡터로 변환 될 때 벡터로 유지되는 것을 신경 쓰지 않으면 phantomjs와 같은 것을 사용하여 SVG를 비트 맵으로 변환 할 수 있습니다. 그런 다음 비트 맵을 PDF로 변환하십시오. 그것은 아주 좋은 해결책은 아니지만.

+0

브라우저에서 잘 작동하는 Brower에는 아무런 문제가 없습니다. 그러나 TCPDF에서 SVG를 사용할 때 foreignObject 요소 나타나지 않습니다. 그리고 예, SVG가 벡터 형태로 있어야합니다. 나는 $ pdf-> ImageSVG ($ file = 'images/tux.svg', $ x = 30, $ y = 100, $ w = '', $ h = 100, $ link = '', $ align = '', $ palign = '', $ border = 0, $ fitonpage = false); TCPDF에서 PDF에 svg를 추가하는 경우 –

+0

HTML을 지원하는 SVG에서 SVG로 찾는 행운을 빕니다. ''를 사용하지 않도록 SVG를 심각하게 변경해야 할 수도 있습니다. –

+0

@PaulLeBeau "draw.io"작업 방법을 살펴보십시오. 그들은 확실히 텍스트를 표시하기 위해 svg에서 foreignObject를 사용합니다. 그리고 나서이 서버를 일부 서버 측 변환기를 사용하여 pdf로 변환하십시오. 그들이 사용하는 변환기는 무엇입니까 ?? – krispo

관련 문제