2016-12-22 5 views
0

Adobe에서 Javascript를 사용하는 초보자입니다. 필자는 파일 이름을 잡아서 문서의 제목으로 추가하는 스크립트를 작성했지만 문제는 두 줄의 긴 파일 이름으로 나뉘어 있지 않습니다. 너무 긴 텍스트 파일 이름은 페이지 테두리 밖에 있습니다. 예를 들어 파일 이름Adobe Javascript를 사용하여 두 줄로 된 긴 파일 이름 문자열

이 인이

단지 샘플입니다 "이것은 내가 어떻게 페이지의 긴 텍스트에 맞게 분할하기 위해 스크립트를 작성하는 두 줄에 분할해야 텍스트입니다" . 편집해야 할 내용은 무엇입니까? 그리고 그것은 가능한가?

var trFileName = this.documentFileName.replace(/.*\/|\.pdf$/ig,""); //remove .pdf extension 
var pageAmount = this.numPages; //define how many pages are there 

this.addWatermarkFromText({ 
cText: trFileName, 
nStart: 0, 
nEnd: pageAmount, 
nFontSize: 18, 
aColor: color.blue, 
cFont: "Helvetica-Bold", 
nTextAlign: app.constants.align.center, 
nHorizAlign: app.constants.align.center, 
nVertAlign: app.constants.align.top, 
//nHorizValue: -25, 
nVertValue: -87.87 
}) 
+1

질문을 게시하기 전에 ** 태그 **를 읽으십시오. – DavidPostill

+1

주제 이외의 질문을하고 있습니다. [On-Topic] (https://superuser.com/help/on-topic), [어떻게 좋은 질문을합니까?] (https://superuser.com/help/how-to-ask)를 읽어보십시오. 및 [어떤 유형의 질문을하지 않아야합니까?] (https://superuser.com/help/dont-ask) – DavidPostill

+0

아니요. 프로그래밍 관련 질문은 주제와 관련이 없습니다. 제발 ** 이미 자바 스크립트 태그를 읽으십시오 ** "** 프로그래밍 문제는 주제에서 벗어났습니다. 대신 스택 오버플로에 대해 문의하십시오. **" – DavidPostill

답변

0

그래서 Acrobat에 대한 문서에서이 작업을 수행 할 수있는 빠른 방법을 찾고 추가하고 100 %의 최대로 페이지에 맞게 워터 마크를 확장 할 수 마땅 bPercentage: -1 속성을 사용하는 것입니다. 분명히 텍스트가 길어질수록 타입의 크기는 작아 지지만 필요할 때만 확장해야합니다.

큰 문제는 "큰 크기가 너무 큽니까?"입니다. 대부분의 글꼴은 고정 너비가 아니기 때문에. 따라서 글꼴의 크기를 확인하는 기능이 없으면 임시 이미지를 설정하고 유형을 설정 한 다음 이미지의 크기를 측정 한 다음 텍스트의 크기를 결정해야합니다.

영어의 최악의 경우는 W의 끝없는 문자열 일 것입니다. 따라서 글꼴 크기와 적당한 글자 수 제한을 하드 코딩하려면 글자 수를 계산하여 합당한 최대 글자 수를 얻을 수 있습니다 그것은 한계를 벗어난다.

일단 해당 번호가 있으면 문자열을 분리 할 수 ​​있습니다. 문자열을 분할하는

한 가지 방법은 문자열을 사용하는 것입니다

var cDisplayText = trFilename; 

var nMaxChars = 10; 
var cAdobeNewline = '\r'; 
var cLineBreakChar = '-'; 

if (cDisplayText.length > nMaxChars && cDisplayText.length > 0) { 
    cDisplayText = cDisplayText.substring(0, nMaxChars) 
    + cLineBreakChar 
    + cAdobeNewline 
    + cDisplayText.substring(nMaxChars); 
} 

을 그리고 나는이 테스트를하지 않은 내 자바 스크립트가 약간 위축되었다 cText: cDisplayText,

으로 cText: trFileName,을 대체하지만, 생각하는 것입니다 문자열 길이를 테스트하고 하이픈과 줄 바꿈을 삽입하십시오.

줄 바꿈이 1 회 이상 필요한 경우를 설명합니다.

+0

작동하지 않습니다. 그러나 그것이 작동한다면 max char 대신 max word string을 선호 할 것입니다. 이것은 내가 붙어있는 곳이다. – spriteup

+0

파일 이름이 "geological_survey_Llanfairpwllgwyngyllgogerychwyrndrobwllllysysogogogoch.pdf"이면 단어 수가 작동하지 않습니다. 고려해야 할 사항 – Yorik

+0

파일 이름을 미리 작성했으며 특정 기호 나 문자가 없습니다. 공백 문자와 단어 만 있습니다. 그래서 단어 개수 옵션은 나를위한 최상의 해결책입니다. – spriteup