PDF 파일의 페이지를 다시 정렬하기 위해 책갈피/개요를 사용하고 있는데 pdftk
그 후에 출력 파일에서 원본 파일의 책갈피가 손실됩니다.
내 주문은 입니다 pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf
.
페이지 순서를 변경할 때 북마크를 유지하는 방법을 알고 싶습니다.
답변1
이것이 가능한 해결책입니다. 그러나 필요에 맞게 조정해야 합니다.
제 예에서는 PDF의 첫 번째 페이지를 삭제한 다음 올바른 위치를 가리키도록 책갈피를 업데이트해야 했습니다.
in.pdf에서 1페이지를 제거합니다.
pdftk A=in.pdf cat A2-end output temp.pdf
in.pdf에서 in.info 파일을 만듭니다.
pdftk in.pdf dump_data > in.info
제 경우에는 페이지를 삭제할 예정이므로 in.info를 수정해야 합니다.
따라서 책갈피가 올바른 페이지를 가리키도록 하려면 BookmarkPageNumber를 1씩 줄여야 합니다.
PHP 코드:
$file = "in.info"; $data = file_get_contents($file); foreach (explode("\n", $data) as $row) { $tmp = explode(": ", $row); if ($tmp[0] == "BookmarkPageNumber") { if ($tmp[1] != "1") $tmp[1]--; echo $tmp[0].": ".$tmp[1]."\n"; } else { echo $row."\n"; } }
최종 out.pdf를 만듭니다.
pdftk temp.pdf update_info in2.info output out.pdf
pdftk 2.01을 사용하여 데비안에서 테스트되었습니다.
답변2
독서매뉴얼 페이지조심하세요. update_info
생성되는 형식에 관계없이 데이터를 가져옵니다 dump_data
. 이는 아마도 페이지 재구성에 따라 조정되어야 할 것입니다. 아닌 것 같은데불가능한, 하지만 자동은 아닙니다.
이것PDFtk 사이트위의 클릭과 북마크 생성/편집만 결과로 제공됩니다. PDF의 북마크 및 재구성 문제에 대해 Google이 말하는 모든 것은 위 작업에 대한 클릭과 그들이 제공하는 경이로움에 대한 서정적 설명과 이 스레드 ;-)입니다.
그래서 할 수 없는 것 같습니다. 의견은 몇 가지 가능성을 제안했지만 시도했을 때 작동하지 않았습니다.
답변3
pdftk in.pdf dump_data > in.info
이 작업을 수행 한 다음 update_info
생성할 때 매개변수를 추가 해야 합니다 out.pdf
. 인용 출처 man pdftk
:
update_info <info data filename | - | PROMPT>
단일 PDF 정보 사전에 저장된 메타데이터를 입력 데이터 파일과 일치하도록 변경합니다. 입력 데이터 파일은 dump_data의 출력과 동일한 구문을 사용합니다. ASCII가 아닌 문자는 XML 숫자 엔터티로 인코딩되어야 합니다. PDF의 XMP 스트림에 저장된 메타데이터는 변경되지 않습니다(있는 경우). 예를 들어:
pdftk in.pdf update_info in.info output out.pdf
update_info_utf8 <info data filename | - | PROMPT>
입력 인코딩이 UTF-8이라는 점을 제외하면 update_info와 동일합니다.
답변4
qpdf는 적어도 cygwin에서는 매력처럼 작동합니다. 다음 옵션을 사용하지 않는 한 --empty
링크는 유지됩니다 .
qpdf input.pdf --pages input.pdf 1,4,5,7-r8,2,3,r7-z -- output.qpdf.pdf
(rN은 끝부터 색인이 생성된 페이지, z는 마지막 페이지)