wkhtmltopdf 는 Html 로 pdf 를 돌 리 는 도구 가 좋 습 니 다.
11301 단어 wkhtmltopdfHtml 변환 pdf
pdflib,FPDF 두 가지 방법 은 프로그램 을 작성 하여 pdf 를 생 성 하 는 것 입 니 다.html 페이지 를 pdf 로 직접 변환 하 는 것 은 지원 되 지 않 습 니 다.html 2pdf 이것 은 html 페이지 를 pdf 파일 로 변환 할 수 있 지만 일반적인 간단 한 html 코드 만 변환 할 수 있 습 니 다.html 내용 이 배경 뉴스 편집 기 를 통 해 레이아웃 되 어야 한다 면 안 됩 니 다.
한참 동안 고민 하 다가 바 이 두 라 니 요?구 글 검색 을 다 사 용 했 습 니 다.한참 동안 검색 을 했 는데 마음 에 드 는 사람 을 저 버 리 지 않 고 좋 은 방법 을 찾 았 습 니 다.다음은 성대하게 소개 하 겠 습 니 다.
이것 은 바로 wkhtmltopdf,wkhtmltopdf 는 브 라 우 저 에서 탐색 할 수 있 는 모든 웹 페이지 를 pdf 로 직접 변환 할 수 있 습 니 다.먼저 phop 류 가 아니 라 html 페이지 를 pdf 로 변환 하 는 소프트웨어(서버 에 설치 해 야 합 니 다)라 는 것 을 설명 합 니 다.그러나 간단 한 데스크 톱 소프트웨어 가 아니 라 cmd 로 직접 처리 합 니 다.php 의 셸 사용 하기exec()함 수 는 그것 을 호출 할 수 있다.php+js+html 로 pdf 파일 을 만 드 는 방법 을 소개 합 니 다.
wkhtmltopdf 다운로드 및 설치
1.다운로드 주소:http://wkhtmltopdf.org/downloads.html 그림:
2.위 에 각종 플랫폼 아래 에 설 치 된 설치 가방 이 있 는데 영어 가 좋 지 않 은 것 은 구 글 에서 직접 번역 해 보 세 요.다음은 windows 7 플랫폼 에서 예 를 들 어 제 가 다운로드 한 것 은 stable(안정 판)의 wkhtmlopdf-0.12.3.2-installer.exe 버 전 입 니 다.저 는 win 7,win 8 32 비트 와 64 비트,win-sever 에 테스트 를 설치 하 는 데 문제 가 없습니다.시스템 에 있 을 때 몇 분 의 설치 패 키 지 를 다운로드 합 니 다.다 운 받 은 후에 바로 설치 하면 됩 니 다.설치 경 로 를 알 고 아래 에 사용 할 것 입 니 다.
3.설 치 된 후에 시스템 환경 변수 이름 이'Path'인 후에 추가 해 야 합 니 다.D:\wkhtmltopdf\bin 은 바로 당신 이 설치 한 디 렉 터 리 입 니 다.설치 하고 컴퓨터 다시 켜.
다음 그림 은 환경 변 수 를 어떻게 설정 합 니까?
내 컴퓨터 를 켜 고 오른쪽 단 추 를 누 르 면 속성 이
고급 시스템 설정 클릭
고급 환경 변 수 를 찾 습 니 다.
시스템 변수 에 있 는 path 를 찾 고 편집 을 누 르 면 방금 설치 한 위 치 를 마지막 으로 복사 합 니 다.앞 에 분 호 를 추가 하 는 것 을 기억 하 세 요!
2.사용 효과 테스트
cmd 에 직접 입력:wkhtmltopdf http://www.baidu.com/ D:website 1.pdf(중간 에 빈 칸 이 있 음 을 주의 하 세 요)
첫 번 째 는 소프트웨어 이름(이것 은 변 하지 않 음)을 실행 하 는 것 입 니 다.두 번 째 는 사이트 주소 이 고 세 번 째 는 생 성 된 경로 와 파일 이름 입 니 다.차 에 돌아 온 후에 생 성 진도 바 의 힌트 를 보 는 것 이 아 닙 니까?성공 한 것 을 축하합니다.생 성 디 렉 터 리 에 방금 생 성 된 pdf 파일 이 있 는 지 확인 하 세 요.
조작 방법:1.windows 키+r 검색 상 자 를 열 고 cmd 를 입력 하고 확인 을 클릭 합 니 다.
2.cmd 에 직접 입력:wkhtmltopdf http://www.baidu.com/ D:website 1.pdf(중간 에 빈 칸 이 있 음 을 주의 하 세 요)
3.리 턴 을 클릭 하면 진도 표를 볼 수 있 습 니 다.그리고 전환 성공 을 알 립 니 다!
4.그 후에 해당 위치(즉 방금 설 정 된 D 디스크)에서 Pdf 파일 이 하나 더 있 는 것 을 발견 하면 성공 한 것 을 의미한다.
php 호출
php 에서 호출 은 간단 합 니 다.셸 로exec 이 함수 면 됩 니 다.셸exec 함 수 는 php.ini 에서 사용 하지 않 는 지 확인 할 수 없습니다.(php.ini 의 셸 을 찾 습 니 다.exec 함수,주석 을 취소 하면 됩 니 다.일반적으로 직접 사용 할 수 있 습 니 다).간단 한 예:
<?php shell_exec("wkhtmltopdf https://www.jb51.net/ 1.pdf") ?>
php 파일 의 동급 디 렉 터 리 에 1.pdf 파일 이 생 성 되 는 것 을 발견 할 수 있 습 니 다.다음 코드 는 사이트 개발 에서 어떻게 사용 하 는 지 예 를 들 어 소개 합 니 다.주요 기능 은 웹 페이지 의 부분 을 캡 처 하여 phop 에 전달 하여 pdf 문서 로 처리 하 는 것 입 니 다.
html 페이지 코드:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="js/jquery-2.1.4.min.js"></script>
<link rel="stylesheet" href="css/common.css" rel="external nofollow" rel="external nofollow" >
<link rel="stylesheet" href="css/myCenter.css" rel="external nofollow" rel="external nofollow" >
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> </title>
</head>
<body>
<!--startprint-->
<div class="right5">
<div class="right_top" style="background-image:url(images/right-di.png);">
<h3> </h3>
</div>
<div class="print">
<input type="button" value=" " id="down" class="print_btn">
</div>
<div class="Hollander">
<h6>MBTI :ESTJ</h6>
<div id="chart"></div>
<p> ・ (John Holland) ・ , 。 , (VocatIonaI Preference lnventory) (Self-directed Search) , 。 。</p>
</div>
<table class="tbl1">
<tbody>
<tr node-type="toolBar">
<td class="tbl11"> :</td>
<td class="tbl12">
<p>① , ② ③ 、 ④ ⑤ , </p>
</td>
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11"> :</td>
<td class="tbl12">
<p>① , ② ③ 、 ④ ⑤ , </p>
</td>
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11"> :</td>
<td class="tbl12">
<p>① , ② ③ 、 ④ ⑤ , </p>
</td>
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11"> :</td>
<td class="tbl12">
<p>① , ② ③ 、 ④ ⑤ , </p>
</td>
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11"> :</td>
<td class="tbl12">
<a><span> >></span></a>
</td>
</td>
</tr>
</tbody>
</table>
</div>
<!--endprint-->
<form action="pdf.php" method="post" name="hld_res" id="hideform">
<input type="hidden" id="hide_content" name="html"/>
</form>
</body>
<script>
$(function () {
// Html <!--startprint--><!--endprint-->
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
// html php
$("#hide_content").val(""+prnhtml+"");
} );
$("#down").click(function(){
$("#hideform").submit();
});
</script>
</html>
php 페이지:
<?php
// pdf
$html=$_POST['html'];
//Turn on output buffering
ob_start();
$html='
<link rel="stylesheet" href="css/common.css" rel="external nofollow" rel="external nofollow" >
<link rel="stylesheet" href="css/myCenter.css" rel="external nofollow" rel="external nofollow" >
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'.$html;
// Html , html demo ( ) html
//$html = ob_get_contents();
//$html=$html1.$html;
$filename = "hld";
//save the html page in tmp folder html
file_put_contents("{$filename}.html", $html);
//Clean the output buffer and turn off output buffering
ob_end_clean();
//convert HTML to PDF
shell_exec("wkhtmltopdf -q {$filename}.html {$filename}.pdf");
if(file_exists("{$filename}.pdf")){
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename={$filename}.pdf");
echo file_get_contents("{$filename}.pdf");
//echo "{$filename}.pdf";
}else{
exit;
}
?>
페이지 의 다운로드 단 추 를 누 르 면,다운로드 알림 이 뜨 고 다운로드 한 pdf 를 켜 면 웹 페이지 의 스타일 과 똑 같 지 않 습 니까?
Php 파일 의 파일 저장 위 치 를 열 어서 임시 파일 이 두 개 더 생 겼 는 지 확인 해 보 세 요.
이 두 임시 파일 이 어디 에 있 는 지,css 가 어디 에 있 는 지,또는 상대 경 로 를 직접 사용 하여 다른 파일 의 css 스타일 을 참조 하 셔 도 됩 니 다.가장 간단 한 것 은 css 스타일 을 pdf 로 전환 할 html 페이지 에 직접 쓰 는 것 입 니 다.
만약 스타일 이 존재 하지 않 는 다 면,그것 은 바로 당신 의 스타일 경로 가 맞지 않 은 것 입 니 다.다시 한 번 검사 하면 됩 니 다!
넷 째,페이지 별 문제 해결
wkhtmltopdf 는 쓰기 좋 지만 마음 에 들 지 않 습 니 다.html 페이지 가 길 면 제 가 지정 한 곳 에 페이지 를 나 눠 야 하 는데 어 떡 하 죠?wkhtmltopdf 개발 자가 개발 할 때 이 점 을 고려 하지 않 은 것 이 아니 라 wkhtmltopdf 에 좋 은 방법 이 있 습 니 다.바로 그 div 스타일 뒤에 페이지-break-inside:avoid 를 추가 하 는 것 입 니 다.됐어.
예컨대
div{ width:800px; min-height:1362px;margin:auto;page-break-inside:avoid;}
이상 은 개인 적 으로 총괄 적 으로 pdf 를 돌 리 는 방법 입 니 다.많은 부분 을 확장 할 수 있 습 니 다.아이들 은 머리 를 써 보 세 요.하지만 아직 해결 되 지 않 았 습 니 다.중국어 이름 으로 파일 을 명명 할 수 없습니다.해결 할 수 있 는 파트너 가 있다 면 아래 에 메 시 지 를 남 겨 주세요.감사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PDFKit 및 wkhtmltopdf로 네트워크 오류 해결오늘의 #10stips(10초 안에 코딩 문제를 해결하는 방법을 배우는 곳)에서는 사랑스러운 에 대해 이야기합니다. 어렸을 때부터 사용하고 있습니다. 일반 기존 HTML+CSS를 사용하여 PDF를 생성합니다. PDF...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.