Thread Rating:
  • 435 Vote(s) - 2.86 Average
  • 1
  • 2
  • 3
  • 4
  • 5
print-graphic-pdfに関して
05-02-2012, 09:05 AM,
#1
print-graphic-pdfに関して

ご無沙汰してます。

print-graphicの挙動に関して3点ほどご質問があります。
別に緊急なわけではないのですが、
ご存知の方が居ればご教授ください。

1.print-graphic-pdfで作成されるPDFのファイルサイズ

print-graphic-pdfで作成されたPDFと
print-graphicで作成した印刷イメージを外部の変換ツールでPDFにしたものの
ファイルサイズを比較すると、print-graphic-pdfで作成した方が
ファイルサイズがかなり大きいことが確認されました。

これは単純な圧縮比率の差なのでしょうか?

文字が主体のドキュメントを印刷したとき
2つのPDFの間で仕上がりに大差が無いように見受けられたので、
少し気になりました。

2.print-graphic-pdf実行時のメモリ使用量

print-graphic-pdfを利用している間メモリ利用量がかなり増加するのですが、
これを減らせる実装方法はありますでしょうか?

例えばprint-graphicだと以下のような方法を取ることで、
印刷実行中のメモリ使用量の増加を抑えることが出来ます。


{let 印刷グラフィック:Graphic}

{print-graphic 印刷グラフィック}||←改ページ処理があるが、便宜上省略

{set 印刷グラフィック = {新しいグラフィック}}

{garbage-collect}


しかし、print-graphic-pdfを利用した場合は
どうも内部で印刷イメージをキャッシュしているせいか
garbage-collectを行ってもメモリ使用量は減りませんでした。

大量ページ(感覚的には30ページ以上)を印刷すると
print-graphic-pdfの処理時間が長くなるように感じるので
プログラムで回避できる方法があれば知りたいと思います。


3.print-graphic-pdfで作成したPDFをスマートフォンで閲覧すると

実装の仕方が悪いのかもしれませんが、
print-graphic-pdfで作成したPDFをスマートフォン
(Android、iPhone両方で試しました)で閲覧すると
文字化けを起こして正しく表示することが出来ませんでした。

現象を特定できていないので曖昧な言い方になりますが、
少なくとも日本語が入っている場合は、ほぼ文字化けするようです。

WindowsのAdobe PDF上では正しく閲覧できたのですが、
これはPDF内部の問題でしょうか?
それともAndroidやiPhone内部のPDFリーダの問題でしょうか?

一先ず回避策は検討して対応できてますが、
原因が究明できればと思います。
05-11-2012, 05:23 PM,
#2
RE: print-graphic-pdfに関して
自己解決しました。

原因はprint-graphic-pdfではなく、
印刷するグラフィックの生成方法だったようです。
(かなり複雑なグラフィック表現のため、オブジェクトの大量作成を行った)

印刷イメージの作成方法を変更したところ、
メモリ消費を改善できました。

お騒がせしました。


Possibly Related Threads...
Thread Author Replies Views Last Post
  Print data NamDH 5 4,615 04-04-2017, 02:27 PM
Last Post: dyoshida
  How to know if Graphic object is being displayed? alchimiste 5 6,633 11-05-2011, 12:38 AM
Last Post: RobertShiplett
Tongue print-graphic-pdfプロシージャの仕様について 森口 慶紀 1 3,625 09-30-2011, 06:36 PM
Last Post: 森口 慶紀
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('488')