2016-06-14 3 views
1

저는 Google Apps Script를 처음 접하고 일반적으로 코딩하고 있습니다. 스프레드 시트의 데이터로 템플릿 문서를 채워서 사용자 지정 문서를 생성하기 위해 '편지 병합'유형의 스크립트를 사용하고 싶습니다. 내가 찾은 스크립트는 거의 완벽합니다 : Google Apps Script to create PDF, 제외하면 Google 문서 파일이 아닌 PDF가 생성됩니다.PDF 대신 Google 문서 파일 생성

지금까지 성공하지 못했지만 PDF가 아닌 Google 문서를 출력하기 위해이 스크립트를 수정 해 보았습니다. 내가 찍었을 가장 가까운이

var newFile = DriveApp.createFile(copyFile.getAs('application/pdf')) 

:

// Create the PDF file, rename it if required and delete the doc copy 
copyDoc.saveAndClose() 
var newFile = DriveApp.createFile(copyFile.getAs('application/pdf')) 
if (PDF_FILE_NAME !== '') { 
newFile.setName(PDF_FILE_NAME) 
} 
copyFile.setTrashed(true) 

을 구체적으로 나는이 라인에 적합한 수정을 알아낼 수 없습니다, 다음과 같이

원래 스크립트의 관련 부분입니다 공백 문서 만 생성하는 다음을 대체하십시오.

var newFile = DocumentApp.create(‘My_File_Name') 

저는 su입니다. 거기에 쉬운 해결책이 있지만, 나는 단지 그것을 작동시킬 수 없습니다.

답변

1

새 문서는 당신이 여기에서 찾고 코드의 라인 전에 만들어진 :

var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(), 

스크립트는 다음, 템플릿의 사본을 작성 PDF를 생성하기 위하여 계속하고, 문서를 휴지통에 버립니다. 당신은 그 마지막 단계를 멈출 필요가 있습니다!

변경 :이 같은 코드를 적응하면

// Rename the file if desired, then close it 
if (PDF_FILE_NAME !== '') { 
    copyDoc.setName(PDF_FILE_NAME) 
} 

copyDoc.saveAndClose() 

SpreadsheetApp.getUi().alert('New doc created in the root of your Google Drive') 

, 또한 그래서 그들은이 관련된 의미를 가지고 PDF_FILE_NAME 같은 변수의 이름을 변경하는 것이 도움이

// Create the PDF file, rename it if required and delete the doc copy 

copyDoc.saveAndClose() 

var newFile = DriveApp.createFile(copyFile.getAs('application/pdf')) 

if (PDF_FILE_NAME !== '') { 

    newFile.setName(PDF_FILE_NAME) 
} 

copyFile.setTrashed(true) 

SpreadsheetApp.getUi().alert('New PDF file created in the root of your Google Drive') 

...에 ... 업데이트 된 코드. 그러나 그것 없이도,이 간단한 변화는 트릭을해야합니다.

관련 문제