2013-09-16 2 views
1

Google Apps Script를 사용하여 텍스트를 문서 서식 파일로 대체하고 .pdf로 저장하려고합니다. 나는 대부분 성공하지만 한 가지 문제가 있습니다. 스크립트에서 템플릿의 텍스트를 검색하고 제공된 텍스트로 텍스트를 바꾸고 글 머리 기호를 사용하고 싶습니다. 텍스트에 추가 된 \ n은 무시됩니다. 여기에 예제 텍스트입니다 :insertListItem (index, text) 잘못된 색인

Today was a good day. 
Tomorrow will be a good day. 

Yesterday was a decent day. 

내 문서에서, 나는이 줄을 _text_을 대체 할 텍스트를 원하는 : Comments: _text_. 궁극적으로 출력해야 할 내용은 다음과 같습니다.

Comments: 
- Today was a good day. 
- Tomorrow will be a good day. 
- Yesteday was a decent day. 

이 코드는 지금까지 가지고 있지만 너무 잘 작동하지 않습니다. 누구라도 도움을 줄 수 있다면 큰 도움이 될 것입니다.

var listr = ""; 
var trunc = text.split("\n"); \\ where text is to be placed into the template 
var index = b.findText("_text_").getStartOffset(); \\ var b is getBody() 
for (var j = (trunc.length - 1); j >= 0; j--) 
    if(!trunc[j].equals("")) b.insertListItem(index, trunc[j]); 
b.replaceText("_text_", ""); 

어떤 도움을 주시면 감사하겠습니다. Google 문서 도구에서 색인 개념을 이해하는 데 가장 힘든 시간을 보내고 있습니다. 고맙습니다.


안녕하세요. 이 구현 방법을 어떻게 종료했는지 알려 드리고 싶습니다.

var trunc = text.split("\n"); \\where text is to be placed into the template 
var index = b.getChildIndex(b.findText("foo").getElement().getParent()) + 1; 
for (var j = (trunc.length - 1); j >= 0; j--) 
    if (trunc[j] != "") b.insertListItem(index, trunc[j]); 

희망이 있습니다. 요소를 뒤로 서로 뒤로 밀어 넣습니다.

+0

좋은 질문, 다른 리소스를 찾을 수 있습니까? –

+0

@JasonK 위의 수정 사항을 어떻게 구현했는지 확인하십시오. 문서가 거의없는 것 같고 나는 아마추어 코더입니다. 이 사실을 알아내는 데 어느 정도 시간이 걸렸습니다. 귀하의 코드가 나를 약간 도와주었습니다. 감사합니다. [= – cvnntg

답변

0

잘이 조잡한 코드는 별도의 하위 요소 인 TEXT가 포함 된 PARAGRAPH의 시작 부분에 삽입 된 것처럼 보입니다. 아마도이 특정 코드는 텍스트가 하위 테이블, 하위 목록 등에없는 경우에만 작동하지만 아마도 도움이 될 것입니다.

var element = DocumentApp.create('newDoc').getBody() 
    .appendListItem('testing').copy(); 
var index = b.getChildIndex(
    b.findText('_text_').getElement().getParent().asParagraph()); 
b.insertListItem(index, element); 

나는 긴 하루가 어쩌면 나는 내가 getChildIndex() 함수되었다이라고 생각 주로 무엇을, 나중에 향상시킬 수 있습니다 했어. 또한 newDoc을 사용하여 insertListItem()에 이상한 "요소를 분리해야합니다." 메시지를 사용할 때까지 .copy()를 사용하여 메모를 남깁니다.

관련 문제