1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
|
'==========================================================================
'Nome: Editor dos Metadata do pdf
'Versão: 1.1
'Last modified: 2005-05-31
'URL do programa: http://www.arilabs.com/software/pdfmeta/pdfmeta.vbs
'Nome de arquivo: pdfmeta.vbs
'Autor: Brian elevado
'Direitos reservados: Analítico Recursos, Inc. (2005)
'Licença: Versão 2 do GNU GPL (ou maior). Ver a seção da LICENÇA abaixo.
'Descrição: Permite que você edite o título, o autor, o assunto, e as palavras-chaves.
' É uma parte frontal fácil usar-se, mas limitada ao pdftk.
'Exige: pdftk-1.12, sustentação da língua de VBScript (anfitrião do certificado de Windows)
'==========================================================================
'============
'Instruções
'============
'(1) exigem este certificado (pdfmeta.vbs) estar em mesmo dobrador que pdftk.exe.
'A maneira a mais fácil de instalar o pdftk é instalar de “o construtor PDFTK” (livre).
'http://users.on.net/~johnson/pdftkb/pdftkb_setup.exe
'O construtor de PDFTK é uma parte frontal do GUI para o pdftk e tem muitas caraterísticas úteis.
' --Ou-- você pode unzip pdftk.exe da lima de fecho de correr encontrada aqui:
' http://www.accesspdf.com/pdftk/ (a ligação de transferência do clique e começ o fecho de correr.)
' (Lugar pdftk.exe em um dobrador apropriadamente nomeado e encontrado.)
' Ver igualmente: http://hacks.oreilly.com/pub/h/2422
'(2) lugar este certificado (pdfmeta.vbs) no dobrador da instalação para
'pacote do pdftk. Fazer para shortcut a pdfmeta.vbs e a lugar no seu
'desktop, se você gosta.
'USO (de 3): Apenas arrastar a lima do pdf da fonte neste certificado de VBS (ou em a
'shortcut a ele). Seguir alertas. O dobrador provisório abrirá
'e o pdf novo estará para dentro. Mover o pdf novo para seu destino.
'====================================================================
'LICENÇA: GNU GPL v2 ou maior: http://www.gnu.org/licenses/gpl.txt
'====================================================================
'Este programa é software livre; você pode redistribui-lo e/ou modificá-lo
'ele sob os termos da licença do general público do GNU como publicados perto
'Free Software Foundation; ou versão 2 da licença, ou
'(em sua opção) alguma versão mais atrasada.
'
'Este programa é distribuído na esperança que será útil,
'mas SEM ALGUMA GARANTIA; sem mesmo a garantia implicada de
'MERCHANTABILITY ou APTIDÃO PARA UMA FINALIDADE PARTICULAR. Ver
'Licença do general público do GNU para mais detalhes.
Opção explícita
'Declarar variáveis
Escurecer sInfile, sFileName, sTempFile, sCurrentDir, sCurrentDrive, sScriptName
Escurecer o sComSpec, sMeta, sTempPath, sCmd, sPdftk, sAppTitle, sTKCmd, args
'Configurar o título da aplicação e o nome de arquivo do comando de PDFTK
sAppTitle = do “editor v1.1 dos Metadata pdf”
sTKCmd = “pdftk.exe”
'Para usar campos diferentes dos metadata, mudar esta definição da disposição
Escurecer os aFields (3.1)
aFields (0.0) = “título”
aFields (1.0) = “assunto”
aFields (2.0) = “autor”
aFields (3.0) = “palavras-chaves”
'Ajustar a bandeira para o “dicionário não encontrada”
Escurecer o noDict
noDict = falso
'Definir constantes
Const cria = retifica, DontCreate = falso
Const HideWindow = 0, ShowWindow = 1
Const ForReading = 1, ForWriting = 2, ForAppending = 3
'Rotina principal
GetArguments ()
OpenPDFFile ()
GetCurrentDirectory ()
TryToAccessPDFTK ()
GetTempFolder ()
DeleteMetaFile ()
CreateDumpDataCmd ()
WriteMetaData ()
DisplayMetaData ()
PromptForMetaData ()
WriteNewMetaData ()
WriteMetaDataIntoNewPDF ()
'Sub-rotinas
GetArguments secundário confidencial
sErr não ofuscante, numérico, oShell
'Começ os argumentos do certificado e a verificação no mínimo um (o nome de arquivo)
Ajustar o oShell = o WScript.CreateObject (“WScript.Shell”)
Ajustar args = WScript.Arguments
sScriptName = WScript.ScriptFullName
numérico = args. Contagem
sErr = “uso: [cscript | wscript] pdfmeta.vbs ” & vbCRLF & _
“(Apenas arrastar uma lima do pdf neste certificado e seguir os alertas.)”
Se = 0 numérico então
sErr de WScript.Echo
WScript.Quit 1
Terminar se
Se InStr (UCase (args. Artigo (0)), “.PDF”) = 0 então
sErr de WScript.Echo
WScript.Quit 1
Terminar se
Terminar o submarino
OpenPDFFile secundário confidencial
sErr não ofuscante, sFile, oFile, FSO
'Tentativa para abrir a lima de entrada
Ajustar FSO = WScript.CreateObject (“Scripting.FileSystemObject”)
sFile = args. Artigo (0)
o sErr = sFile & “não existe!”
Se FSO.FileExists (sFile) então
oFile ajustado = FSO.GetFile (sFile)
sInfile = oFile.path
sFileName = oFile.name
Mais
sErr de WScript.Echo
WScript.Quit 1
Terminar se
Terminar o submarino
GetCurrentDirectory secundário confidencial
aCurrentPath não ofuscante, FSO, sErr, oFile
'Começ o diretório atual (onde o certificado é encontrado)
Ajustar FSO = WScript.CreateObject (“Scripting.FileSystemObject”)
Ajustar oFile = FSO.GetFile (o sScriptName)
sCurrentDir = oFile.path
aCurrentPath = separação (sCurrentDir, “: ")
sCurrentDrive = aCurrentPath (0)
o sErr = “este programa deve residir em uma movimentação local ou na movimentação traçada.”
Se Len 1 (sCurrentDrive <> ) então
sErr de WScript.Echo
WScript.Quit 1
Terminar se
sCurrentDir = aCurrentPath (1)
sCurrentDir = meados de (sCurrentDir, 1, Len (sCurrentDir) - Len (oFile.name))
sPdftk = sCurrentDrive & “: ” & sCurrentDir & sTKCmd
Submarino da extremidade
TryToAccessPDFTK secundário confidencial
sErr não ofuscante, FSO
'Tentativa para alcançar o programa de pdftk.exe
Ajustar FSO = WScript.CreateObject (“Scripting.FileSystemObject”)
o sErr = o sPdftk & “não existem!”
Se FSO.FileExists (sPdftk) então
'Pdftk.exe encontrados no diretório atual…
Mais
sErr de WScript.Echo
WScript.Quit 1
Terminar se
Terminar o submarino
GetTempFolder secundário confidencial
oShell não ofuscante
'Começ o trajeto do dobrador provisório
ajustar o oShell = o CreateObject (“WScript.Shell”)
sTempPath = oShell.ExpandEnvironmentStrings (“%temp%")
sComSpec = oShell.ExpandEnvironmentStrings (“%comspec%")
sTempFile = sTempPath & “\” & sFileName
Submarino da extremidade
DeleteMetaFile secundário confidencial
FSO não ofuscante, oOrigMetaFile
'Suprimir dos metadata arquivam se já existe
sMeta = sTempPath & “\ metadata.txt”
Ajustar FSO = CreateObject (“Scripting.FileSystemObject”)
Se FSO.FileExists (sMeta) então
oOrigMetaFile ajustado = FSO.GetFile (sMeta)
oOrigMetaFile.Delete
Terminam se
Submarino da extremidade
CreateDumpDataCmd secundário confidencial
oShell não ofuscante
'Criar um objeto do escudo de comando e a informação do pdf da descarga aos metadata arquiva
sCmd = sComSpec & de “""" de /d do chdir /c & sCurrentDrive &”: “& _ do sCurrentDir
& """ & “& sTKCmd &” """ & _ sInfile & do """ do dump_data “
& “> """ & sMeta & """ 2>&1”
Ajustar o oShell = o WScript.CreateObject (“Wscript.Shell”)
sCmd de oShell.Run, HideWindow, verdadeiro
Submarino da extremidade
FixBrokenDictionary secundário confidencial
oShell não ofuscante
'Criar pdf novo da informação de um pdf do objeto e do “gato” do escudo de comando
sCmd = """" & sPdftk & """" & ““& """" & sInfile & """" & _
o “gato output” & o """" & sTempFile & o """" & “não fazem _ask”
Ajustar o oShell = o WScript.CreateObject (“Wscript.Shell”)
sCmd de oShell.Run, HideWindow, verdadeiro
sCmd = sComSpec & de “movimento /y /c” & """" & sTempFile & """" & ““& _ do """"
& sInfile & """"
Ajustar o oShell = o WScript.CreateObject (“Wscript.Shell”)
sCmd de oShell.Run, HideWindow, verdadeiro
CreateDumpDataCmd ()
WriteMetaData ()
Submarino da extremidade
WriteMetaData secundário confidencial
Não ofuscante COM REFERÊNCIA A, FSO, TSO, sErr
sErr = “incapaz de reparar o dicionário da informação.”
'Ler dos metadata arquivam, teste para expressões,
'e valores dos metadata da loja
Ajustar FSO = CreateObject (“Scripting.FileSystemObject”)
Se FSO.FileExists (sMeta) então
Ajustar TSO = FSO.OpenTextFile (sMeta, ForReading, DontCreate)
Ajustar COM REFERÊNCIA A = RegExp novo
Escurecer i, sLine
Fazer quando não TSO.AtEndOfStream
sLine = TSO.ReadLine
RE.Pattern = “nenhum dicionário da informação encontrado”
Se RE.Test (sLine) então
Se o noDict = retifica então
sErr de WScript.Echo
WScript.Quit 1
Mais
o noDict = retifica
'TextStreamObject próximo
TSO.Close
FixBrokenDictionary ()
Retirar o submarino
Terminar se
Mais
noDict = falso
Para i = LBound (aFields) a UBound (aFields)
RE.Pattern = “InfoKey: ” & aFields (i, 0)
Se RE.Test (sLine) então
sLine = TSO.ReadLine
aFields (i, 1) = meados de (sLine, 12)
Terminar se
Em seguida
Terminar se
Laço
'TextStreamObject próximo
TSO.Close
Terminar se
Terminar o submarino
DisplayMetaData secundário confidencial
Escurecer i, msg, abas, retval
o msg = “sua lima do pdf tem as seguintes propriedades: ” & vbCRLF & vbCRLF
Para i = LBound (aFields) a UBound (aFields)
Se Len (aFields (i, 0)) > 7 então abas = abas do vbTab = vbTab & vbTab outros
msg = msg & aFields (i, 0) & “: ” & abas & aFields (i, 1) & vbCRLF
Em seguida
msg = msg & vbCRLF & APROVAÇÃO do vbCRLF & do “clique a continuar ou cancelar a parar.”
retval = msgbox (msg, vbOKCancel, sAppTitle)
Se retval = vbCancel então WScript.Quit 1
Submarino da extremidade
PromptForMetaData secundário confidencial
'Usuário alerta para metadata, using metadata na lima original como defeitos
Escurecer i
Para i = LBound (aFields) a UBound (aFields)
aFields (i, 1) = _
InputBox (“incorporar” & os aFields (i, 0) & “: ”, sAppTitle, aFields (i, 1))
Em seguida
Submarino da extremidade
WriteNewMetaData secundário confidencial
FSO não ofuscante, TSO
'Abrir uma lima de texto e escrever-lhe metadata
Ajustar FSO = CreateObject (“Scripting.FileSystemObject”)
Ajustar TSO = FSO.OpenTextFile (o sMeta, ForWriting, cria)
Escurecer i
Para i = LBound (aFields) a UBound (aFields)
TSO.Write “InfoKey: ” & aFields (i, 0) & vbCrLf
TSO.Write “InfoValue: ” & aFields (i, 1) & vbCrLf
Em seguida
'TextStreamObject próximo
TSO.Close
Submarino da extremidade
WriteMetaDataIntoNewPDF secundário confidencial
oShell não ofuscante
'Criar uma variável de corda do comando do pdftk do objeto e do jogo do escudo de comando
ajustar o oShell = o WScript.CreateObject (“Wscript.Shell”)
sCmd = """" & sPdftk & """" & ““& """" & sInfile & """" & _
“update_info” & """" & sMeta & """" & “saída” & _ do """"
& sTempFile & """" & “não faz o _ask”
Retval não ofuscante
'Funcionar o comando do pdftk e destruir variáveis locais para liberar a memória
sCmd de oShell.run, HideWindow, verdadeiro
retval = msgbox (“procurar a lima de saída no dobrador provisório” & no _
“que abrirá em seguida.” & vbCRLF & “a lima de saída” & _
“terá o mesmo nome que a lima original. ”, _
vbOKCancel, sAppTitle)
Se retval = vbCancel então WScript.Quit 1
'Explorador aberto ao dobrador do temp
oShell.run “explorador” & sTempPath, 1, verdadeiro
Submarino da extremidade
|