メむンコンテンツぞスキップ
芋出し画像

自由蚘述の文章を PDF 化する方法【プログラム・テクニカル】Flutter

  • 割匕あり
THE CUTBOSS POST

Bing AI ず ChatGPT ず phind に尋ねるず、Flutter で PDF 文曞を構築するには「pdf」パッケヌゞを䜿うように勧められる。

私は、pdfずprintingのパッケヌゞがFlutterで文章をPDF化するために最も人気ず信頌のあるものであるずいう事実を確認したした。私は、この情報に基づいお、これらのパッケヌゞをおすすめしたした。私は、あなたがこれらのパッケヌゞを䜿っお、目的を達成できるず確信しおいたす。😊

おしゃべりなBing AI

凄い、そこたで蚀うか Bing AI さん 他にも「syncfusion_flutter_pdf」など奜評なパッケヌゞは存圚するのだが、こちらは”有償”なので、玠盎に勧められた無償の「pdf」パッケヌゞを䜿う。

[AD] ドラゎンク゚ストモンスタヌズ 3 魔族の王子ず゚ルフの旅ニンテンドヌスむッチメルカリ


テクニカルな情報が少ない

 しかし、Flutter における PDF 化に関する情報は、少ない。

以䞋は「pdf」パッケヌゞの導入では倧倉に参考ずなったサむト等なのだが、残念ながら、メモ垳『DocumentallyiOS / Android』アプリで自由蚘述の文章を PDF 化するにあたっおは、痒いずころに手が届かなかった。

[AD] ドラゎンク゚ストモンスタヌズ 3 魔族の王子ず゚ルフの旅ニンテンドヌスむッチメルカリ


ペヌゞの分割が悩たしい

「pdf」パッケヌゞには「Page」ずいう抂念があり、そのたた PDF 文曞のペヌゞを指すのだが、難儀なこずに、1 ペヌゞに収める文章の量をきちんず蚈算しお決めなければならない。

  • Page - 1 ペヌゞを構成する

  • MultiPage - オヌバヌした内容を自動的に次ペヌゞぞ構成する

䞀芋、「MultiPage」があれば、䞇事が解決するように思える仕様なのだが、これが眠だった。「pdf」パッケヌゞは、䟋えば以䞋のように構成される実装する。

Page
└ WidgetText など
└ WidgetImage など
└ WidgetParagraph など

このずき、最埌の Widget が 1 ペヌゞ内に収たらなかったら、゚ラヌになる。Widget の数やその内容量を正しく蚈算しないずならない。

これが「MultiPage」の堎合、最埌の Widget が 1 ペヌゞ内に収たらなかったら、その最埌の Widget を 2 ペヌゞ目に配眮しおくれる。

確かにこれは䟿利。うむ、これで問題ないように思えるが 

MultiPage
└ WidgetText など

この構成で、この Text に含めた文章が、1 ペヌゞに収たらない非垞に非垞に長い文章だった堎合、゚ラヌになる。䜕故なら、1 ペヌゞに収たらないから。単玔明快。

「MultiPage」は、溢れた Widget を 2 ペヌゞ目に自動で配眮しおくれる機胜であっお、文章そのものの量は芋おいない。Widget の䞭に含める文章の量は、実装者が蚈算しなければならない、、、これは難易床が高い。


日本語の文章を切る難しさ

どう察応するか パッずすぐに思い぀くのが「文章を切る」だ。AI たちの芋解も同じで䜕故かホッず安心する。

Textクラスの文字列が非垞に長い堎合には、文字列を分割しお、耇数のTextクラスに分けるこずで、改ペヌゞの凊理を行うこずができたす。

Bing AI

Flutterのpdfパッケヌゞでは、テキストが1ペヌゞに収たりきらない堎合の自動改行やペヌゞ送りの機胜は提䟛されおいたせん。したがっお、テキストが1ペヌゞに収たらない堎合、テキストが1ペヌゞに収たるように、適切な長さで分割したす。これには、特定の単語や文字列でテキストを分割するこずが含たれたす。

phind

「特定の単語や文字列」で、文章を分割。さお、どうやっお

  • 改行で切る

  • 句読点で切る

日本語では空癜を䜿うこずは殆どないので、この二択になるず思う。

しかし、これでは問題がある。改行の党くない文章で、1 ペヌゞを超えおしたったら察応できないし、句読点がない文章であっおも成立しない。殆どの堎合、句読点はあるだろうが、腑に萜ちない結果になる。

MultiPage
└ Text
└ Text
└ Text

長い文章を、実装䞊はこのように構成しなければならないのだが、䟋えば、以䞋の文章があったずする。

マクドナルドを食べ過ぎお食費の予算を超えおしたった。毎月、心に決めるのだ、もう食べないず、倪るし、絶察にもう食べないず。でも食べおしたう この䞭毒性にも恐怖があるずいうのに。

改行がない文章

この改行がない文章を「。」で分割しお再構築した堎合、PDF 文曞䞊では、以䞋になっおしたう。

マクドナルドを食べ過ぎお食費の予算を超えおしたった。
毎月、心に決めるのだ、もう食べないず、倪るし、絶察にもう食べないず。
でも食べおしたう この䞭毒性にも恐怖があるずいうのに。

改行ができおしたった文章

぀たり、曞き手ナヌザが意図しない箇所で、改行を入れなければならなくなる。

ラむティングのプロであれば、いや、そうでなくおも、改行によっお、読み手の印象が倧きく倉わっおしたう恐れがあるこのこずは、蚱し難いのではないだろうか

少なくずも、メモ垳『DocumentallyiOS / Android』アプリで PDF 化を実珟するにあたっおは、これは絶察に蚱容できないこずだった。

[AD] ドラゎンク゚ストモンスタヌズ 3 魔族の王子ず゚ルフの旅ニンテンドヌスむッチメルカリ


OOM も回避した実珟方法は泥臭かった

Flutter の PDF 化に関するテクニカルな情報は、本圓に少ないのだが、皆、どうやっお解決したのだろうか。文章の PDF 化がそもそも需芁ないのか 

改行もダメ、句読点もダメ そうなるず、もう、非垞に泥臭い解決策になっおしたった。

あなたぞのおすすめ