NDAの作成
組織は、外部のコントリビューターと協力してサービスや製品を構築します。 機密保持契約(NDA)は、これらの共同作業の重要な要素です。 これにより、すべての当事者がいずれかの事業体に損害を与える可能性のある機密情報を解放することを拘束します。
最も広く使用されているNDA形式はPDF文書です。 組織はNDAを準備し、すべての関係者に送信します。 その後、全員が署名すると、契約が開始されます。 高速チームでは、手動でPDFを作成すると進行が遅くなります。
学習内容
この実践チュートリアルでは、会社に特化したMicrosoft Word NDAテンプレートの作成方法を説明します。 Microsoft Word向けのAdobeの無料アドインであるAdobe文書生成タグには、動的値を入力するための「タグ」が挿入されます。 JSONデータをテンプレートに渡し、動的PDFを作成する方法について説明します。 作成されたPDFは、業務要件や目標に応じて、電子メールで送信したり、ブラウザーで共同作業者に表示したりできます。 Node.js、JavaScript、Express.js、HTML、CSSの使い方を学びましょう。
関連APIとリソース
Adobe Acrobat Servicesを使用すると、動的データを使用してPDF文書をその場で作成できます。 Acrobat Servicesは、NDA作成を自動化するためのAdobe Document Generation APIを含むPDFツールスイートを提供します。
JSONモデルの作成
Microsoft WordテンプレートはJSONモデルに依存しているため、最初にJSONモデルを作成します。 チュートリアルには、連絡先情報など、会社の詳細を含む基本的なJSON構造を使用します。
{
"vendor": {
"companyName": "GlobalCorp",
"street": "123 Any Street",
"street2": "",
"city":"Anywhere",
"state":"CA",
"primaryContact": {
"firstName":"John",
"lastName":"Doe",
"email":"john-doe@example.com",
"phone":"123-456-7890"
}
},
"authorizedSigner": {
"firstName": "Sarah",
"lastName": "Rose",
"email": "sarah@example.com",
"phone":"555-555-1234"
}
}
Microsoft Word内でこの構造を使用して、テンプレートを作成します。 このデータは、JSON形式である限り、任意のデータソースから取得できます。 簡単にするために、Node.jsアプリケーション内に複数のファイルを作成しますが、使用例によっては、ベンダー情報を取得するためにデータベース接続が必要な場合があります。
Microsoft Wordテンプレートを作成する
Microsoft Word文書にNDAテンプレートを作成します。 Adobe PDF Services APIでは、サービスがJSONドキュメントから値を注入できるタグがMicrosoft Wordドキュメントに含まれている必要があります。 すべてのAdobeリクエストのテンプレートは同じですが、JSONの動的データが変わります。 このタグは、1つのMicrosoft Wordテンプレートを使用して、NDA文書の生成を自動化し、プロセスを高速化することで、この場合にすべてのベンダーのPDF文書を作成するのに役立ちます。
Microsoft Wordに無料のDocument Generation Taggerアドインをインストールできます。 組織に所属している場合は、Microsoft Office管理者に依頼して、すべてのユーザー向けの無償アドインのインストールを依頼できます。
アドインをインストールすると、[ホーム]タブの[Adobe]カテゴリにアドインが表示されます。 タブを開くには、ドキュメントの生成 を選択します。
タブ内で、サンプルのJSONドキュメントをアップロードできます。 この文書は、Microsoft Wordテンプレートの作成にのみ使用するので、サンプルにすることができます。
「タグを生成」を選択して、テンプレート内で使用できるアイテムを表示します。 JSON構造から抽出されたプロパティは次のとおりです。これにより、テンプレートで使用できます。
authorizedSigner
フィールドの機能です。 その他のフィールドは折り返され、Microsoft Wordでビューを展開できます。 アドインには、テーブル、リスト、計算値などの高度なデータオプションも用意されています。
タグの作成
テンプレートを作成するか、既存のテンプレートをMicrosoft Wordに読み込んでください。 文書を設定したら、アドインで対応するトークンをクリックして、各フィールドにタグを追加します。
Microsoft Wordファイル内の次のテンプレート:
このファイルにはいくつかのタグが含まれています。 プログラムを実行すると、これらのフィールドにはベンダー情報が入力されます。
Document Generation TaggerはAdobe Sign APIと統合されます。 この統合により、Signテキストタグを自動的に作成し、生成された文書をAdobe Signに送信して署名することができます。
ベンダーのNDAを生成しています
サンプルアプリケーション内で、入力および出力用のフォルダーを準備しました。 前述のように、JSONファイルを使用することで、システムで使用可能なベンダーを表示するためのファイルが2つできます。 ファイルは、ブラウザーに印刷されるフォーム内に表示されます。
<h1><b>NDA</b>: Generate for vendor.</h1>
<hr />
<p>Following ({{files.length}}) vendors are ready, select to generate NDA and deliver for signature:</p>
<form method="POST">
<ul>
{{#each files }}
<li><input type="checkbox" name="vendor" value="{{this}}" id="file-{{@index}}" /> <label for="file-{{@index}}">{{this}}</label></li>
{{/each}}
</ul>
<input type="submit" value="Create NDA" />
</form>
このコードは、ブラウザーで次のユーザーインターフェイス(UI)を生成します。
管理者がユーザーを選択すると、アプリはAdobe PDFサービスを使用して、外出先でNDAを生成します。
async function compileDocFile(json, inputFile, outputPdf) {
try {
// configurations
const credentials = adobe.Credentials
.serviceAccountCredentialsBuilder()
.fromFile("./src/pdftools-api-credentials.json")
.build();
// Capture the credential from app and show create the context
const executionContext = adobe.ExecutionContext.create(credentials);
// create the operation
const documentMerge = adobe.DocumentMerge,
documentMergeOptions = documentMerge.options,
options = new documentMergeOptions.DocumentMergeOptions(json, documentMergeOptions.OutputFormat.PDF);
const operation = documentMerge.Operation.createNew(options);
// Pass the content as input (stream)
const input = adobe.FileRef.createFromLocalFile(inputFile);
operation.setInput(input);
// Async create the PDF
let result = await operation.execute(executionContext);
await result.saveAsFile(outputPdf);
} catch (err) {
console.log('Exception encountered while executing operation', err);
}
}
Expressルータ内で次のコードを使用します。
// Create one report and send it back
try {
console.log(`[INFO] generating the report...`);
const fileContent = fs.readFileSync(`./public/documents/raw/${vendor}`, 'utf-8');
const parsedObject = JSON.parse(fileContent);
await pdf.compileDocFile(parsedObject, `./public/documents/template/Adobe-NDA-Sample.docx`, `./public/documents/processed/output.pdf`);
console.log(`[INFO] sending the report...`);
res.status(200).render("preview", { page: 'nda', filename: 'output.pdf' });
} catch(error) {
console.log(`[ERROR] ${JSON.stringify(error)}`);
res.status(500).render("crash", { error: error });
}
GitHubで完全なサンプルコードを表示できます。
このコードでは、Adobe Acrobat Services SDKへのAPI呼び出しでJSONドキュメントとMicrosoft Wordテンプレートを使用します。 応答で、出力を受け取り、アプリケーションのファイルシステムに保存します。 無料のAdobe PDF Embed APIを使用すると、生成されたドキュメントをメールでクライアントに転送したり、ブラウザー内でプレビューを表示したりできます。
この呼び出しにより、次のNDAドキュメントが作成されます。
Adobe Acrobat Services APIは、コンテンツを挿入してPDF文書を作成します。 これらのツールを使用しないと、Officeドキュメントを処理し、未加工のPDFファイル形式で作業するためのコードを記述しなければならない場合があります。 Adobe PDFサービスを使用すると、これらの手順をすべて1回のAPI呼び出しで実行できます。
Adobe Sign APIを使用して、NDAに対する署名を依頼し、最終的な署名済み文書をすべての関係者に配信します。 Adobe SignからWebhookを使用して通知されます。 このwebhookをリッスンして、NDAのステータスを取得できます。
Adobe Signプロセスの詳細については、ドキュメントを参照するか、この詳細なブログ投稿を参照してください。
次の手順
この実践チュートリアルでは、Microsoft WordテンプレートとJSONデータファイルを使用してAdobe文書を動的に生成するために、PDF文書生成Taggerを使用します。 このアドインにより、各関係者に合わせてカスタマイズされたNDAを自動的に作成し、Sign APIを使用して署名を収集できました。
これらの方法を使用して独自のNDAやその他のドキュメントを動的に作成することで、チームが生産性の高い作業に集中する時間を節約できます。 Adobe Acrobat Servicesを検索して、選択した言語およびランタイムのAPIとSDKを見つけてください。アプリケーションに直接PDF関数を追加して、PDF文書をすばやく作成できます。 6か月間の無料体験後は、使用を開始
従量課金制 (ドキュメントトランザクションあたり$0.05のみ)。