安全なWebページの正確なコピーをベクターグラフィック形式で保存する


9

Webページの正確なレプリカをベクターグラフィックス形式で保存したいので、スクリーンショット手法を使用できません(画像がラスターグラフィック形式で保存されるため)。

Safari、Chrome、Firefoxで「pdfに印刷」と「pdfとして保存」を試しました。これはほとんどの場合機能します。ただし、保存されたPDFは、すべてのWebページの正確なレプリカではありません。たとえば、このWebページをPDFとして保存してみてください。保存したPDFに賛成/反対のアイコンが含まれていないことに注意してください。

SafariでWebArchiveとして保存することも試みました。ここでの問題は、結果のファイルをトリミングする必要があり、WebArchiveをトリミングする方法がわからないことです。プレビューではファイルを開くことができず、Safariで開くだけです(スクエア1に戻る)。

また、WebページをPDF(ベクターグラフィックフォーム)として保存するためのワンクリックソリューションを提供するWebブラウザープラグインも試しました。これはより適切に機能し(正確なページが保存されます)、問題をほぼ解決しますが、これらのプログラムはページのURLをクラウドベースのプログラムに送信してクエリを実行し、ページを保存することで機能します。これは、この手法は、ログインに資格情報を必要とするhttpsサイトでは機能しないことを意味します。

だから私は片隅にいます。ログイン資格情報を表示する必要があるWebページの正確なベクターグラフィックスレプリカを保存しようとしています。これどうやってするの?


1
あなたは混乱していると思います-PDFはベクトル形式ではありません。
Kevin Panko 2013年

混乱しないでください。質問の主なポイントが伝えられていると思うので、pdfがベクターグラフィックスを格納できるコンテナであるという詳細についてあまり心配しなくてもよい
Clayton Stanley

あなたの質問は、「画面に表示されているとおりにWebページをPDFファイルとして保存し、ログオンにパスワードが必要なページで機能するにはどうすればよいですか」のようです。
Kevin Panko 2013年

PDFである必要はありません。これは、テキストがベクターグラフィック形式であるWebページを保存するための1つのルートにすぎません。私はそのフォーマットにコミットする必要はありません。ただし、2番目のノートのタイトルにはセキュアを追加します。これにより、これがより強調されます。
クレイトンスタンレー

回答:


6

画面でページを表示したときとは異なる結果が得られます。

これは、Webページに、印刷時にページを変更するCSSスタイルシートが含まれているために発生します。

この質問は、その問題を回避するのに役立ちます 。画面のスタイルシートを使用して印刷するにはどうすればよいですか。

そこに表示される指示に従って、画面上のスタイルシートを使用してページを印刷します。

次に、PDFに印刷して、画面に表示されるのと同じ結果を得ることができるはずです。


1
完全なドキュメントのために、私は最終的にChrome Web Developerプラグインを使用し、このプラグインを使用してCSSを編集しました。Google Chromeの組み込み開発者ツールを使用してcssを編集した後、印刷ページを更新できませんでしたが、これはそのツールに慣れていないためと考えられます。
クレイトンスタンレー

4

小さなスクリプトを恐れていない場合は、http: //phantomjs.org/からOSX用のphantomjsアプリケーションを使用してみてください。

次に、rasterize.jsスクリプトを次のようなコマンドで使用して、含まれているバイナリを実行します。

phantomjs.exe rasterize.js http://www.example.com/sitepage 8.5in*11in outfile.pdf

いくつかのメモ:

  • これは「rasterize.js」と呼ばれますが、テキスト自体は実際のテキストとしてPDFに保存されます。

  • Windowsオブジェクトを使用してセキュアサイトへの認証を行うには、ページオブジェクトを初期化した後、rasterize.jsスクリプトに数行追加します。

var page = require( 'webpage')。create()、
    system = require( 'system')、
    アドレス、出力、サイズ。
    page.settings.userName = "serviceUserName"; //これらを追加しました
    page.settings.password = "servicePassword"; //ここに2行

if(system.args.length 5){

phantomjs rocks!
マシューロック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.