問題タブ [xpsdocument]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 埋め込みリソースからdocumentviewerにXPSをロードします
私は自分のアプリケーションの助けを借りようとしています。documentviewerにロードしているxpsドキュメントがあります。これらのファイルはリソースファイルに埋め込まれています。
これらにbytearrayとしてアクセスできます。たとえば、Properties.Resources.help_sudoku_methods_2はbyte[]を返します
ただし、documentviewerはそれを読み取ることができず、fixeddocumentsequenceが必要です。したがって、bytearray、xpsdocument、fixeddocumentsequenceから次のようにメモリストリームを作成します。
これは非常に不潔なアプローチであり、ファイルに画像がある場合も機能しません。新しいドキュメントの画像の代わりに、最初に読み込まれたドキュメントの画像が表示されます。
XPSを埋め込みリソースからdocumentviewerにロードするためのよりクリーンな方法はありますか?または、ファイルをリソースからアプリケーションディレクトリにコピーし、メモリストリームではなくここからロードするようなものが必要ですか?ありがとうございました。
wpf - FixedDocument を XPS ファイルに保存するとメモリ リークが発生する
特定のアクションを実行してレポートを生成する .NET Windows サービスを作成しました。これらのレポートは、特定のディレクトリに保存する XPS ドキュメントです。
WPF に精通しているため、レポートを作成するために選択した方法は、 をインスタンス化し 、必要に応じてコンテンツを含むオブジェクトをSystem.Windows.Documents.FixedDocument
追加することです。FixedPage
私の問題は、サービスのメモリ使用量が、実行中に時間の経過とともにどんどん増えていくということです。
最初に、すべての破棄可能なオブジェクトが破棄されることを確認するなど、コードを厳密に調べましたが、その他の明らかなメモリ リークの候補もありましたが、それでも問題がありました。次に、CLR プロファイラーを使用して、サービスのメモリ使用量を詳細に調べました。
サービスがこれらのレポートを生成し、それらを XPS ファイルとして保存すると、オブジェクト ( 、、、など) にFixedDocument
関連付けられたさまざまな UI 要素がすべてメモリに保持されることがわかりました。FixedDocument
Dispatcher
FixedPage
UIElementCollection
Visual
これは、WPF アプリで同じことを行った場合には発生しないようです。そのため、WPF アプリの外部で使用されている WPF UI ディスパッチャー モデルと関係があると思います。
FixedDocument
このようなサービス (または一般的に WPF アプリの外部) でオブジェクトを使用する場合、オブジェクトを「破棄」するにはどうすればよいですか?
========編集=========
OK、私のメモリ リークは、FixedDocument の作成/入力に特に関係していないことがわかりました。そうしても、実際には XPS としてディスクに保存しないと、メモリ リークは発生しません。したがって、私の問題は、XPSファイルとして保存することに関係しているに違いありません。
これが私のコードです:
私が試したこと:
- 手動ガベージ コレクション
UpdateLayout()
ページネーターを取得する前に各ページを呼び出しますmyFixedDocument
(以下の回答で示唆されているように)-ページネーターで はなく、myFixedDocument
直接渡そうとしましたWrite()
- これらのコード行を独自のスレッドに配置し、ディスパッチャーを手動でシャットダウンする
まだ運がありません。
========== 回避策 ==========
http://msdn.microsoft.com/en-us/library/system.appdomain.aspxの例に示されている一般的な方法を使用して上記のコードを独自の AppDomain に分離することにより、メモリ リークはサービスに影響しなくなりました (私はまだ発生しているため、「もう影響はありません」と言いますが、AppDomain がアンロードされると、リークされたすべてのリソースがアンロードされます)。
私はまだ本当の解決策を見たいと思っています。
(関連する注意事項として、別の AppDomain を使用すると、特定の XPS ファイルを PDF ファイルに変換するために使用していた PDFSharp コンポーネントでメモリ リークが発生しました。PDFSharp は、通常の状況では拡大しないグローバル フォント キャッシュを使用することが判明しました。しかし、これらの AppDomains を使用した後、キャッシュはどんどん大きくなっていきました. PDFSharp のソース コードを編集して、FontDescriptorStock と FontDataStock を手動でクリアできるようにし、問題を解決しました.)
========== ソリューション ==========
最終的な解決策については、以下の私の回答を参照してください。
c# - WPF で DocumentPageView.DocumentPaginator へのバインディングを設定するにはどうすればよいですか
WPFでDocumentPageViewをバインドする方法は?
私のコード:
ソースは DocumentPaginator のタイプです。エラーは次のとおりです。
エラー 1 タイプ 'DocumentPageView' の 'DocumentPaginator' プロパティに 'Binding' を設定できません。「Binding」は、DependencyObject の DependencyProperty でのみ設定できます。
私を助けてください。Tnx...
pdf - XPS と PDF を比較して、どちらが将来の標準になるでしょうか?
Microsoft は XPS を提案しましたが、そのステータスは PDF と比べてどうですか? PDFよりもXPSの利点はありますか?
c# - xps 抽出を再度 zip に再パックする
XPS をフォルダーに抽出し、いくつかの画像を編集し、XPS ビューアーで開くことができるようにするために再圧縮したいのですが、何か問題があります!..何も変更しない場合、再圧縮して開くことはできません。 XPS ビューアーで。
Windowsの「圧縮フォルダーに送信」とWinZipを「圧縮なし|超高速|強化デフレート」およびICSharpCode.SharpZipLib.dllで使用しています。しかし、成功しません。
助けてください!
c# - XPSドキュメントをマージすると、最後の1つが重複します
複数のXPSドキュメントを1つにマージするときに問題が発生します。それらをマージすると、結果のxpsには、複製された最後のXPSドキュメントが含まれます。これがマージする私の関数です(この質問の修正バージョン):
結果はDocumentViewerに送られ、ユーザーに表示されます。
java - Android で PowerPoint XML をビットマップ、jpeg、または png 画像として表示する
アプリの res フォルダーに追加できるようにする必要がある PowerPoint プレゼンテーションが多数あります。XML、PDF、または XPS として保存しないと、大量のメモリが消費されます。PDF と android はまったく簡単に組み合わせることができないため、XML または XPS のパスを選択します。これらをビットマップとして表示および/または編集できるようにする必要があります。
PowerPoint XML を画面に表示または描画する方法がわかりません。PowerPoint XPS で同じことを行う方法もわかりませんが、1 つの方法 (XPS または XML) だけが必要です。私は、PDF がファイルの複雑さの点で徐々にオプションではなくなり、標準のビューアー API がないことを知っています。
だから基本的に...
- Android で XML または XPS PP プレゼンテーションをビットマップとして表示/表示する必要があります。
- XML と Java を使用できます
- 私は調査を行いましたが、この実装を行うための根本的な要因を理解する必要があります
以下にコードを添付しますが、スタック オーバーフローにはサイズが大きすぎます。PP でテストし、必要に応じて PowerPoint XML 形式で保存することをお勧めします。
手伝ってくれてどうもありがとう。
xps - .xpsファイルをマージするにはどうすればよいですか?
複数のドキュメントを.xpsファイルに結合する方法はありますか?サードパーティのソフトウェアをインストールしなくても、これができることを望んでいます。どんな助けでも大歓迎です。
wpf - WPF印刷の大規模なカスタムコントロール
重複している場合は申し訳ありませんが、関連するものは見つかりませんでした。
持っているカスタムコントロールからXpsDocumentを作成しようとしています。カスタムコントロールは、本文に加えて、ヘッダーとフッターのプロパティをすでに定義しています。
アイデアは、同じコントロール(またはその派生物)をカスタムDocumentPaginatorへの入力として使用できるようにすることです。このコントロールは、すべてのページにヘッダーとフッターを配置して、その「レポート」のプリンター対応バージョンを作成します。本体内のコントロールが完全に表示されます(コントロール全体のビットマップを作成してから、拡大縮小してページの終わりにカットしたくありません)。
ユーザーコントロールのコンテンツをページに分割する方法についてのアイデアはありますか?または、コントロールをページに印刷するための別の方法に関する提案はありますか?
よろしくお願いします