2017-01-26 5 views
-1

私は基本的に、GoogleドキュメントのドキュメントでGoogle App Scriptを使用してメールマージ(Total: $ 20.00の代わりにTotal: $ {total_amount}を置き換えています)を行っています。本文のコピーを取得して「プレビュー」ウィンドウを作成

ただし、previewオプションを使用して、モーダルダイアログなどを表示してから、実際のドキュメントのBodyのコピーを追加します。そうすれば、すべての変数を置き換えて、元の形式(太字、斜体など)を維持できます。

私は既にHTMLをエクスポートして現在のドキュメントを読み込んでダイアログに追加する実装をすでに持っています。

など
html = getGoogleDocumentAsHTML(); 
replaced = replace(html); 

output = HtmlService.createHtmlOutput(replaced) 
    .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
    .setWidth(700) 
    .setHeight(500); 

DocumentApp.getUi().showModalDialog(output, 'Preview'); 

/* 
* @see http://stackoverflow.com/questions/14663852/get-google-document-as-html#answer-28503601 
*/ 
function getGoogleDocumentAsHTML(){ ... 

しかし、ユーザーが各ページに収まる段落を知っているように、このアプローチで、私は、ページを表示することができません、レイアウト、

のコピーを取得する方法はありますこれを行うにはDocumentBodyなどの方法がありますか?

+1

。変更された一時文書そのものをモデルダイアログに埋め込みます。次に、ユーザーが選択したときに一時文書を削除します。埋め込みドキュメントには、すべてのページ番号とレイアウトが保持されます。 –

+0

@SpencerEaston答えとして例を挙げてください。 –

+0

@ChristopherFansiscoどの部分?ドキュメントのコピー、変更、削除は簡単です。ダイアログボックスに文書を埋め込む方法を見せてください。 –

答えて

0

1)アクティブなドキュメントのコピーを作成します。
2)この文書のコピーを変更します。
3)変更した文書をダイアログボックスに埋め込みます。
4)ユーザーが新しい文書のプレビューを完了した後、変更されたコピーを削除します。

iframeを使用してダイアログボックスにドキュメントを表示できます。ダイアログのサイズは、以下の例から変更できます。重要な部分はhttps://docs.google.com/document/d/{id}/preview?authuser=0です。私はauthuser=0をタックして、現在のユーザーの資格情報を使用するヒントを示しました。これは必須ではありませんが、アカウント選択ボックスがポップアップするのを防ぐことができます。あなたはユーザーが要求したとして、それを修正し、作業ドキュメントの一時コピーを作成することができます

code.gs

function renderDocument(docId){  
    var html = HtmlService.createTemplateFromFile('dialog'); 
    html.ID = id 
    var ui = DocumentApp.getUi(); 
    ui.showModalDialog(html.evaluate().setWidth(800).setHeight(910), "html") 
} 

dialog.html

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    </head> 
    <body> 
    <iframe frameborder="0" style="width:90%;height:900px" allowfullscreen="" src="https://docs.google.com/document/d/<?=ID?>/preview?authuser=0"></iframe> 
    </body> 
</html> 
関連する問題