6

Adobe Acrobatには、PDFファイルを編集する機能があります(つまり、単に情報の上にブラックボックスを描画するのではなく、実際に情報を削除します)。この機能をプログラムで使用したいと思います。GUIを使用して編集するには、[編集マーク]ツールを選択し、編集するテキストの上に描画してから、[編集を適用]を選択します。

AppleScriptまたはその他の方法でこれをプログラムで行う方法はありますか?

編集するテキストの(X、y)位置を知っています。

ありがとう!

4

5 に答える 5

5

PDFを適切に編集するには、コンテンツストリームを変更する必要があります。これは非常に難しいです。

削除したいテキストを描画するコンテンツストリームの部分を見つけることができれば、そこにいる途中です。

残りの半分は、ドキュメントの残りの部分を変更しないようにコンテンツストリームを変更する方法を理解しています。次のテキスト描画演算子の前に「tm」コマンド(次のテキストを絶対的に配置するテキストマトリックスを設定)を実行すると、簡単です。そうでない場合は...置換するテキストの正確な幅を計算し(いくつかの異なるPDFライブラリでこれを実行できます)、描画コマンドを変更して、その多くをスキップする必要があります。

例えば:

BT
/ F1 10 Tf
1 0 0 1 30 720 Tm
(ここにいくつかのテキストがあります、そしてあなたはあそこの大文字の「編集」だけを編集したいです)Tj
*
(このテキストは前の行を基準にして配置されています)Tj
1 0 0 1 30 650 Tm
(このテキストは絶対に配置され、30、650から始まります)Tj

したがって、最初の(...)Tj行を(Here's some text, and you only want to)Tj、、、N 0 Tdおよび(that upper case "redact" over there)Tj...に分割する必要があります。ここで、「N」は、次のテキスト描画操作の位置を適切に調整して、正確に同じスポットに到達するようにします。したがって、フォントリソース/ F1(結果が何であれ)を使用して、10ポイントのサイズの「REDACT」の正確な幅を知る必要があります。

あなたの人生をよりエキサイティングにするために、あなたはカーニングされたテキストについても心配しなければなりません。したがって、テキストに沿って少し間隔を調整することができます。

(これは、PDF仕様で描画された最初のテキストから取得されます)

[(Adobe Sys)5(t)1(ems Inc)5(orporated)5(20)5(08 \ 226 All rights)5(reser)-9(ved)] TJ

「Incorporated」を適切に編集するには、2つの文字列に分割されていることを確認し、それに続く文字列の位置を調整して、まったく同じ場所に配置する必要があります。

<DEADBEEF>また、文字列は。ではなく16進値にすることができます(plain old ascii)

アイデアが浮かびますか?そして、私はここですべての可能性をカバーしていません、ただ最も一般的なものだけです。

私が言ったように:これは非常に難しいです。


Appligent Redax (接続なし)と呼ばれるacrobatプラグインがあり、注釈を描画して(または、テンプレートや正規表現などを介して生成し)、コードを実行して編集を処理できます。プログラムで注釈を作成し、プラグインをアクティブ化することも可能です。ドキュメント内のJSはメニュー項目を実行できます。

于 2011-05-18T16:32:54.227 に答える
2

これがあなたがする必要があることを通過するウェブページです。他の人が述べたように、これはJavascriptで行う必要があります。これは、Acrobatのネイティブスクリプトです。

http://acrobatusers.com/tutorials/2008/07/auto_redaction_with_javascript

私はAcrobatを定期的に使用していますが、驚くべきことに、スクリプトを作成する必要はありませんでした。辞書で調べたところ、Javascriptファイルを作成して保存し、それが必要な場合はApplescriptで開く必要があるようです(たとえば、サービスとして)。

tell application "Adobe Acrobat Professional"
   do script "this.info.title;"
end tell

これがAdobeのJavascriptforAcrobatのドキュメントです

http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat9_HTMLHelp&file=JavaScript_SectionPage.70.1.html

于 2011-05-25T01:35:38.223 に答える
2

GroupDocs.Redaction for .NETを使用して、PDFドキュメント内のテキストをプログラムで編集できます。テキストの正確なフレーズ、大文字と小文字を区別する正規表現の編集を実行できます。これは、正確なフレーズ編集を実行する方法です。

using (Document doc = Redactor.Load("D:\\candy.pdf"))
{
     doc.RedactWith(new ExactPhraseRedaction("candy", new ReplacementOptions("[redacted]")));
     // Save the document to "*_Redacted.*" file.
     doc.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false }); 
} 

開示:私はGroupDocsで開発者エバンジェリストとして働いています。

于 2019-05-26T12:03:23.040 に答える
1

Adobe Acrobat内では、さまざまなイベントで呼び出すことができるActionScriptを使用してこれを実行できる場合があります。

別のアプリケーションでこれを実行したい場合は、PDFドキュメントを作成および操作できるさまざまなプラットフォームにさまざまなツールがありますが、一部に近づくことさえできる機能豊富なオープンソースライブラリはまだ見つかりません。これらの製品の。

http://www.aspose.com/categories/.net-components/aspose.pdf-for-.net/default.aspx

http://www.aspose.com/categories/java-components/aspose.pdf-for-java/default.aspx

http://itextpdf.com/

iTextは私の個人的なお気に入りであり、あらゆるペニーの価値があります。

于 2011-05-18T12:28:23.103 に答える
-1

一般にPDFの編集は、かなり複雑な作業です。

doXiview(https://doxiview.cib.de)でPDFページを無料で編集できます。編集オプションは右側にあります。

別のアプローチは、CIB pdfツールボックス(https://pdftoolbox.cib.de/)によってプログラムで実行されます。

于 2022-02-08T12:15:40.503 に答える