web-dev-qa-db-ja.com

ファイルではなくhtmlテキストを変換するwkhtmltopdfオプションはありますか?

私は最近wkhtmltopdfに出くわし、ブラウザでhtmlからpdfにオンザフライで変換するための優れたツールであることがわかりました。

(Windowsでの)一般的な使用法は次のようになります。

wkhtmltopdf.exe --some-option "<div>Some html <b>formatted</b> text</div>" www.Host.com/page_to_print.html file.pdf

私の質問は、<html><head></head><body><h1>This is a header</h1></body></html>の代わりにwww.Host.com/page_to_print.htmlを使用するオプションはありますか?

助けてくれてありがとう。

13
Ifedi Okonkwo

はいといいえ。

ネイティブサポートはありませんが、Windowsコマンドのプロンプトパイプを使用してコンテンツをwkhtmltopdfにパイプできます。次のコマンドを試してください。

echo "<h3>magical ponies</h3>" | wkhtmltopdf.exe - test.pdf

これは、「このテキストをエコーし​​、stdout(標準出力ストリーム)をwkhtmltopdf stdin(標準入力ストリーム)に出力する」のようになります。ダッシュ- wkhtmltopdfコマンドは、ファイルではなくstdinからの入力を受け取ることを意味します。

HTMLをファイルにエコーし、そのファイルをwkhtmltopdfにフィードして、スクリプト内でそのファイルを削除することもできます。

現在、ドキュメントに最適なリソースは http://wkhtmltopdf.org/usage/wkhtmltopdf.txt および http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf_0.10.0 _rc2-doc.html -それらを読んだ場合、そのようなHTMLの文字列を入力することについての言及はありません。

22
Nenotlep

Nenotlepによって提供された答えに対する単なる修正。 Jigarが(Nenotlepの回答へのコメントで)指摘したように、Nenotlepのコマンドは、実際のテキストの前後に引用符を付けます。私のシステム(Windows 10)では、このコマンドが正しい解決策です。

echo ^<h3^>magical ponies^</h3^> | "C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe" - test.pdf

echoコマンドには引用符は必要ありませんが、テキストを引用符で囲まない場合は、<文字と>文字を(^で)エスケープする必要があります。 )。

試してみるもう1つの方法は、テキストを一時ファイルに書き込むことです。これは、Windowsでは、一部のソースが述べているように、さらに高速になる可能性があります。

echo ^<h3^>magical ponies^</h3^> > temp.txt
"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe" - test.pdf < temp.txt

(これは1行で記述することもできます。2つのコマンドの間に&を置くだけです。)

2
booFar

PowerShellを使用すると、次のように実行できます。

$html = "<h1>Magical Ponies</h1><p>Once upon a time in Horseland, there was a band of miniat
ure creatures..."
$html | .\wkhtmltopdf.exe - C:\temp\test.pdf

wkhtmltopdf\bin\ディレクトリ内からコードを実行していることを確認してください。そうでない場合は、実行可能ファイルへのフルパスを指定する必要があります。

2
Ifedi Okonkwo

生のhtmlをPDFに変換するためにwkhtmltopdfを動作させることができませんでしたが、数分の作業でそれを実行できる単純なマイクロサービスを見つけました bantam.io =。

仕組みは次のとおりです。

bantam
 .run('@images/html', {
   html: `
   <h1 style='width: 400px; text-align: center'>TEST</h1>
   <br/>
   <img src='https://images.unsplash.com/photo-1507146426996-ef05306b995a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1950&q=80' />
   `,
   imageType: 'pdf',
 })
 .then(pdfUrl => {
    // pdf is temporarily hosted on AWS S3 via a secure link at `pdfUrl`
});

また、生のHTMLではなくURLを取り込むためのオプションがあり、PDFだけでなく画像も作成できます。ドキュメントは次のとおりです。 https://bantam.io/functions/@images/html?link=docs&subLink=

1
Nick Schappler

Pp。によって提供された回答に加えて、<>文字をエスケープしたくない場合は、次のこともできます。

echo | set /p="<h3>Magical ponies</h3>" | wkhtmltopdf - test.pdf
1
QuiOui