Pergunta : Metadata do pdf de Vbscript para SharePoint 2010

Olá!, o

Does qualquer um sabe aplicar metadata a uma lima e submeter então toda a lima de SharePoint 2010's ao centro record com VBScript?  Não com ASP.NET mas Cscript.

Many Thanks
class= do

Resposta : Metadata do pdf de Vbscript para SharePoint 2010

no passado eu usei http://www.verypdf.com/pdfinfoeditor/index.html

mas caro agora

código abaixo de http://oreilly.com/pub/h/2407 (mas eu não testaram)

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
Outras soluções  
 
programming4us programming4us