"텍스트를 .pdf로 변환하는 방법"에 대한 답변은 이미 여기에 나와 있습니다.협회그리고 여기협회, 저는 좀 더 구체적인 것을 찾고 있습니다.
Claws-Mail 사용 [웹사이트] 및 플러그인 [RSSyl] RSS 피드를 읽기 위해 많은 양의 텍스트 파일을 수집했습니다. 이것을 .pdf 파일로 변환하고 싶습니다.
질문: 폴더의 파일 번호는 [1, 2, …, 456]입니다. 각 피드에는 자체 폴더가 있지만 내부에는 "그냥" 번호가 매겨진 파일만 있습니다. 각 파일에는 헤더(뒤에 메시지 내용이 옴)가 포함되어 있습니다.
Date: Tue, 5 Feb 2013 19:59:53 GMT
From: N/A
Subject: Civilized Discourse Construction Kit
X-RSSyl-URL: http://www.codinghorror.com/blog/2013/02/civilized-discourse-construction-kit.html
Message-ID: <http://www.codinghorror.com/blog/2013/02/civilized-discourse-construction-kit.html>
Content-Type: text/html; charset=UTF-8
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="http://www.codinghorror.com/blog/2013/02/civilized-discourse-construction-kit.html">
</head><body>
<p>URL: <a href="http://www.codinghorror.com/blog/2013/02/civilized-discourse-construction-kit.html">http://www.codinghorror.com/blog/2013/02/civilized-discourse-construction-kit.html</a></p>
<br>
<!-- RSSyl text start -->
질문.pdf
: 각 파일을 파일로 변환하고, 아래 이름에 맞게 이름을 바꾸는 방법주제. 정말 멋진 점은 다음과 같이 변환하고 이름을 바꾸는 것입니다.
"folder.name"_"date"_"file name"
각 정보는 헤더 데이터에서 가져옵니다. 수백개의 파일이 있어서 일괄 처리할 수 있는 방법을 찾고 있습니다.
파일의 html
형식이 지정되었지만 접미사가 없습니다 .htm[l]
.
답변1
한 수준의 디렉터리만 있는 비교적 간단한 파일 트리가 있고 각 디렉터리에 파일 목록이 포함되어 있지만 하위 디렉터리는 없는 경우 다음과 같은 작업을 수행할 수 있습니다(터미널에 직접 붙여넣고 을 클릭할 수 있음 Enter).
for dir in *; do ## For each directory
if [ "$(ls -A "$dir")" ]; then ## If the dir is not empty
for file in "$dir"/*; do ## For each file in $dir
i=0; ## initialize a counter
## Get the subject
sub=$(grep ^Subject: "$file" | cut -d ':' -f 2-);
## get the date, and format it to MMDDYY_Hour:Min:Sec
date=$(date -d "$(grep ^Date: $file | cut -d ':' -f 2-)" +%m%d%y_%H:%M:%S);
## the pdf's name will be <directory's name> _ <date> _ <subject>
name="$dir"_"$date"_"$sub";
## if a file of this name exists
while [ -e "$dir/$name".pdf ]; do
let i++; ## increment the counter
name="$dir"_"$date"_"$sub"$i; ## append it to the pdf's name
done;
wkhtmltopdf "$file" "$dir"/"$name".pdf; ## convert html to pdf
done
fi
done
노트
이 솔루션에는 다음이 필요합니다.
wkhtmltopdf
:웹킷 렌더링 엔진과 qt를 사용하여 html을 pdf로 변환하는 간단한 쉘 유틸리티입니다.
Debian 기반 시스템에서는 다음 명령을 사용하여 설치할 수 있습니다.
sudo apt-get install wkhtmltopdf
거기에 있다고 가정합니다파일 없음최상위 디렉토리에필수 html 파일만 필요합니다.모든 하위 디렉터리에 있습니다.
공백, 개행 및 기타 비정통 문자가 포함된 파일 및 디렉터리 이름을 처리할 수 있습니다.
dir1/foo
귀하가 게시한 샘플 콘텐츠가 포함된 파일이 주어지면 다음과 같은 파일이 생성됩니다.dir1/dir1_020513_20:59:53_Civilized Discourse Construction Kit10.pdf
답변2
명명 규칙에 따라 언제든지 페이지 제목을 사용할 수 있으므로 고유해야 합니다.
주소 목록이 포함된 파일이 주어지면 다음은 한 줄입니다.
while read url; do wkhtmltopdf $url "$(curl -s $url | grep -o "<title>[^<]*" | tail -c+8).pdf"; done < urls.lst
urls.lst
URL 목록이 포함된 파일은 어디에 있습니까?