채택완료

pdf 출력 관련 질문입니다.ㅠㅠ

2019-07-02 (화) 16:55:41 2,220

fpdf를 쓰다가 html 출력이 어려워서 조언을 듣고 tcpdf로 바꿨는데요~

html은 잘 나오는데 table이 제대로 안나와가지고 ㅠㅠ

아래는 pdf출력시 나오는 이미지 입니다

1794815956_1562053345.4353.png

입력될때 width 값이 들어가있어서 그 값 그대로 나오는 것 같더라구요.

1794815956_1562053393.5313.png

아래는 스마트에디터로 표를 넣고 html텝으로 변환해서 복사한 표 소스입니다.

<p>6. 특이사항 : 없음</p><p>&nbsp;<img src="http://vdware.vdream.co.kr/data/editor/1907/2322dac06427506395649b65b22fc12b_1562049678_8252.png" title="2322dac06427506395649b65b22fc12b_1562049678_8252.png" alt="2322dac06427506395649b65b22fc12b_1562049678_8252.png">&nbsp;</p><p>&nbsp;</p><table border="0" cellpadding="0" cellspacing="0" style="border:1px solid #cccccc;border-left:0;border-bottom:0;" class="__se_tbl"><tbody><tr><td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
</tr><tr><td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
</tr><tr><td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
</tr><tr><td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
<td style="border:1px solid #cccccc;border-top:0;border-right:0;background-color:#ffffff;" width="265"><p>&nbsp;</p></td>
</tr></tbody></table>

보시는것처럼 style로 width값이 박혀있는데..

그래서 php 로 style을 제거하는 정규식을 써서 style을 제거를 하니까 표 자체가 안나오더라구요 ㅋㅋㅋ ㅠㅠ

에디터를 다른걸쓰니까 제각각으로 나오긴하던데..

에디터를 바꿔달자니 일이 좀 많고..

요약

1. 네이버스마트에디터로 작성한 표가 tcpdf로 출력시 깨집니다.ㅜㅜ

2. 어떤 방향으로 접근해봐야 할지 조언좀 부탁드립니다 ㅠㅠ

|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트

https://codeday.me/ko/qa/20190322/125725.html

jquery를 활용해서 해당 td를 반복시키고 반복된 값에서 해당 width값을 빼주시면 될거 같은데요

Copy
$('td').each(function() {
    $(this).attr("width",'');
});

답변에 대한 댓글 1개

감사합니다 ㅎㅎ말씀해주신 것에 영감을 얻어 해결했습니다~

$row['wr_content'] = preg_replace('%<table[^>]*?style\s*=\s*"[^"]*"[^>]*>(.*?)</table>%si', '<table>$1</table>', $row['wr_content']);
$row['wr_content'] = preg_replace('%<td[^>]*?style\s*=\s*"[^"]*"[^>]*>(.*?)</td>%si', '<td border="1">$1</td>', $row['wr_content']);
$row['wr_content'] = "<style>td{text-align:center;}</style>".$row['wr_content'];

정규식으로 table와 td의 style을 싹다 제거하고 다시 재선언해줬습니다 ㅎㅎ

답변을 작성하려면 로그인이 필요합니다.