ブラウザから大きなSVGチャートを印刷しようとしていますが、SVGチャートはHTMLに埋め込まれています。チャートの幅/高さは絶対値に設定されています。印刷物はSVGチャートの一部しか印刷しませんが、1ページに収まることが多く、残りの部分はカットされます。別のページに印刷するためにチャートを分割する方法はありますか?大きなページを別のページに印刷
1
A
答えて
0
これは、SVGを表示するために使用しているブラウザによって異なります。どちらかといえば別のブラウザを試してみてください...サファリには(Macでは少なくとも)素晴らしい印刷機能があります。またはSVGを「隔離」します。ソースを見て、埋め込みSVGの相対URLを見つけて入力しますURLバーに...
<td><object id="object" type="image/svg+xml" data="**smiley.svg**">Please use a modern browser!</object></td>
<td><iframe id="iframe" src="**smiley.svg**">Please use a modern browser!</iframe></td>
<td><embed id="embed" src="**smiley.svg**" type="image/svg+xml" /></td>
<td><img id="img" alt="smiley face" src="**smiley.svg**" /></td>
またはコピーしてインラインソースから実際のSVGコードを貼り付け、.SVGの拡張子を持つプレーンテキストドキュメントに貼り付け...
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"
style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:-1;">
<linearGradient id="gradient">
<stop class="begin" offset="0%"/>
<stop class="end" offset="100%"/>
</linearGradient>
<rect x="0" y="0" width="100" height="100" style="fill:url(#gradient)" />
<circle cx="50" cy="50" r="30" style="fill:url(#gradient)" />
</svg>
その後Illustratorから無料のInkscape、または他の多くのアプリケーションを使用して、ハートの内容に操作(または印刷)することができます。
0
phantomjs.orgプロジェクトを使用して、サーバーでチャート画像を生成します。 URLを使って任意のHTMLページをヘッドレスWebKitマシンに読み込んでPNGにレンダリングすることができます。 さらに、ページの最終的なサイズを取得してから、クリップリージョンを定義することで、ページをサイズに分割することができます。
たとえば、次のサンプルでは、ページからファイルシステム内の別々のPNGイメージにいくつかのチャートをエクスポートします。その後、新しいWebページをアセンブルしたり、PDFにパックしたり、ユーザーにダウンロードリンクを提供することができます。これは、Webアプリケーションのための最も信頼性が高く安定した印刷ソリューションです。
var page = require('webpage').create();
page.viewportSize = { width: 1280, height : 1024 };
page.open('http://chart.html', function() {
page.clipRect = page.evaluate(function() {
var chart = jQuery("#chart1");
return { top: chart.offset().top, left: chart.offset().left, width: chart.outerWidth(), height: chart.outerHeight() };
});
page.render('chart1.png');
page.clipRect = page.evaluate(function() {
var chart = jQuery("#chart2");
return { top: chart.offset().top, left: chart.offset().left, width: chart.outerWidth(), height: chart.outerHeight() };
});
page.render('chart2.png');
page.clipRect = page.evaluate(function() {
var chart = jQuery("#chart3");
return { top: chart.offset().top, left: chart.offset().left, width: chart.outerWidth(), height: chart.outerHeight() };
});
page.render('chart3.png');
phantom.exit();
});
関連する問題
- 1. 印刷HTMLページ
- 2. 現在のページから別のページを印刷
- 3. HTMLページを印刷
- 4. ページの印刷ヘルプ
- 5. ページを印刷するときに
- 6. rails 3印刷ページ
- 7. ページ幅が高さより大きいjpanelデータを印刷
- 8. 各ページのヘッダを印刷
- 9. 印刷プレビューなしのWebページの印刷
- 10. 通常の印刷のようにjspでページを印刷
- 11. 色でASP.NETページを印刷
- 12. JSFでWebページを印刷
- 13. 各ページを異なるページに印刷する
- 14. 印刷アルゴリズムのページ範囲
- 15. 印刷のページ番号
- 16. CSSと改ページの印刷
- 17. 複数のHTMLテーブルを別々のページに印刷
- 18. ドットマトリックスプリンタで簡単なWebページを印刷
- 19. javascriptで印刷中にページを拡大する
- 20. C#複数ページ印刷
- 21. 印刷ページ生成時間
- 22. Magento 1.5.1.0オーダー印刷ページgetLabelProperties
- 23. フォームに自動的にページを印刷
- 24. Jasper Reports:1ページに複数のページを印刷するには
- 25. 印刷用に別のhtmlページが必要ですか?
- 26. 各印刷ページでGridViewのヘッダーを印刷する方法
- 27. WPF Gridページを印刷するには?
- 28. ファイルにページを印刷するAttachmateデータスクレイピングマクロ
- 29. WPF - 同じページに内容を印刷
- 30. Processingでページを印刷するには?
私はSVGコードをIE7の別のページに印刷するように変更することはできますか? –
はい、私があなたに与えた指示は普遍的です。 "ソースを見る"と言うと、SVGは単語の文字列であり、開始と終了は ''となります。それらを抜き出して、ソフトウェアでは、IE7からフリーやAdobe PDFプラグイン、Microsoft XPSなど、さまざまな方法で「印刷」する方法がたくさんあると思います。または単にスクリーンショットを撮って印刷してください。しかし、あなたが何をしても、解決策として自分の答えを記入することを忘れないでください。それは本当に重要なことです、笑。 J/k。 –
ありがとうアレックス。最後に、印刷のためにチャートを分割するためにSVGコードにどのような変更を加える必要がありますか?通常のHTML onBeforePrintタグを追加してJSで呼び出すことで、改ページを追加できますか?それとも、印刷物に壊れてしまうユニークなsvgコードがありますか? –