2

私はFPDF/FPDIを使用してPDFテンプレートシステムを構築しています。1つのPDFが背景として使用され、その中に多数の編集可能な領域が定義されています(データベースに保存されます)。編集可能な領域は、画像、テキスト、またはその両方である可能性がありますが、これは私の質問ではなく、ほんの少しの背景です。

一部の背景(FPDIソースPDF)PDFまたは「テンプレート」にはフォントが埋め込まれています。2つのことを実現できるようにしたいと考えていましたが、これが可能かどうか疑問に思いました。

  1. ソースドキュメントに埋め込まれているフォントを出力ドキュメントで使用できるようにしたい。
  2. UIのフォントリストに含めることができるように、これらのフォントを列挙する必要があります。

明確にするために、これらのフォントを再利用して、インポートしたページに適用するだけでなく、埋め込みフォントの1つで新しいテキストをレンダリングするオプションを提供したいと思います。

任意のポインタをいただければ幸いです。

4

3 に答える 3

1

まずフォントとPDFについて。私の記憶が正しければ、フォントをPDFに含めると、すべてのフォントを含めることができます。または、実際に使用されている文字面をカバーするフォントのサブセットだけを埋め込むこともできます。一部のPDFの「圧縮」ツールは、未使用のフォントグリフをPDFファイルから削除できます。(誰かがこれを確認/反論できますか?)

FPDF(私が使用しているライブラリ)に関しては、「編集」モードでPDFを開くことはできないと思います。PDFを開くだけで、背景として使用できます。事実上、ドキュメントの画像です。提供されたスクリプトをざっと見てみると、実際にPDFファイルを開くスクリプトは表示されていません(ドキュメントのメタ情報を取得できるスクリプトを除く)。

PDFライブラリには他にもオプションがあります。次のプレゼンテーションで見たTCPDFのデモンストレーションは、TCPDFがFPDFにより多くの組み込み機能を持っている可能性があることを示しました。そのライブラリを調べる価値があるかもしれませんか? http://suburbanchicagophp.org/archives/75

于 2009-07-22T22:11:49.833 に答える
0

これをさらに明確にするために、Zend_PDF はこの正確な機能を許可し、PDF に埋め込まれたフォントを列挙して再利用しますが、v1.4 以降の PDF では機能しませんが、v1.4 pdf では Zend は非常にうまく機能します。

たとえば、Zend_PDF では次のことが可能であり、フォントを名前で再利用できます。

public static function GetFontList($background)
{
     $pdf = Zend_Pdf::load($background);
     $fonts = array(); 
     // Get all document fonts
     $fontList = $pdf->extractFonts();

    foreach ($fontList as $font) 
    {
        $fontName = $font->getFontName(Zend_Pdf_Font::NAME_POSTSCRIPT, 'en', 'UTF-8');
        $fonts[] = $fontName;
    }

    return $fonts;
}

これが誰かの役に立つことを願っていますが、1.4 よりも高い pdf バージョンが必要なので、FPDI を変更しようとしていると思います。

于 2009-07-27T11:39:20.227 に答える
0

私は元の質問者ですが、一時アカウントを失ったのでコメントできません (管理者は可能であればマージしてください)。

明確にするために。

FPDI の Web サイトに詳細が記載されている互換性の問題により、TCPDF ではなく FPDF を使用することを選択しました。これは、FPDI がこのコア コンポーネントであるためです。

FPDI を使用してテンプレート ドキュメントからページを取得し、テキストと画像 (Web UI を使用してデータベースで定義) を各ページの上部に配置するため、使用法は FPDI が許可するとおりです。

この掲示板で、pdf ファイルから埋め込みフォントを引き出すことについて尋ねている別の質問を見つけました。

Perl で PDF ファイルからフォントを抽出するにはどうすればよいですか?

テンプレートはデザイナーから提供されます。テンプレート pdf のフォントを (抽出するのではなく) 再利用したいと考えています。

したがって、これらは私たちのフォントです。このpdfが編集のために通過するすべてのマシンで、フォントを埋め込むだけでなく、正しいフォントを選択して埋め込む必要はありません. これにより、フォントの処理が 2 倍、さらには 3 倍になり、推測作業が発生する可能性があります。

上記の投稿の返信の 1 つは非常に役立つ指示です。これは、埋め込みフォントを列挙できる Perl モジュールです。これは、UI フォント リストに埋め込みフォントを表示するために必要なものです。

ここで、ソース (テンプレート) pdf に埋め込まれたフォントが新しい pdf に引き継がれるかどうかをテストする必要があります。

私が確かに知っているときは、完全を期すために投稿します。

ps 一部のエディターが圧縮された pdf ドキュメントを作成し、使用されていないフォントの一部を削除することは正しいですが、これを行うエディターを使用しないでください、またはフォントを再埋め込みする必要があるという単純な要求です。

于 2009-07-23T10:16:04.913 に答える