Newsgroup: it.comp.appl.access
Titolo: utilizzo API love pdf da vba access

qualcuno usa le api di ilove pdf?
 
https://developer.ilovepdf.com/docs/api-reference
 
 
se si, non riesco in alcun modo a far funzionare la fase di upload del 
file locale.
 
l'autenticazione è ok
 
https://api.ilovepdf.com/v1
 
/auth
 
 
il get server e task sono ok
https://api.ilovepdf.com/v1/start/{tool}
 
 
l'upload non riesco farlo funzionare
https://{server}/v1/upload.
 
credo che l'inghippo sia qui
 
" If the uploaded source file is local, the data must be sent using 
form-data request type. "
 
 
il mio codice (ho tolto la parte di gestione del file da caricare per 
semplificare) :
 
DestURL = "https://" & server & "/v1/upload"
sPostData = "{'task':'" & task & "'}"
With CreateObject("MSXML2.ServerXMLHTTP")
         .Open "POST", DestURL, False
         .setRequestHeader "Content-Type", "multipart/form-data; 
boundary=" & Boundary
         .setRequestHeader "Authorization", "Bearer " & token
         .send (Replace(sPostData, "'", """"))
         Debug.Print .responseText
  End With
 
 
dove server, token e task sono correttamente ottenuti dal precedente 
getserver
 
 
la chiamata continua a restituirmi :
 
{"error":{"type":"BadRequest","message":"Request can't be processed 
succesfully","code":400,"param":{"task":"Empty or incorrect Task"}}}
 
 
idee?
 
BFS
 
 
 


se a qualcuno può servire in futuro ho risolto usando un altro portale 
con relative API che offre gli stessi servizi
 
https://apidocs.pdf.co
 
 
documentazione molto più chiara
per ogni servizio è spiegato per bene il body payload da comporre e il 
relativo header
 
 
BFS
 
 


Ma cos'e' che fanno 'sti siti web esattamente in piu' (o di diverso) 
rispetto ai classici pdf-atori locali?
 
 
 


nel mio caso mi serviva aggiungere del testo e delle immagini ad un pdf 
(una firma scansionata da tavoletta grafica)
 
quindi ho usato queste
 
https://apidocs.pdf.co/04-pdf-add-text-signatures-and-images-to-pdf?utm_referer=https://apidocs.pdf.co/
 
 
il vantaggio è che non devi comprare acrobat pro
 
se non superi la soglia di utilizzo è tutto gratis
 
se guardi la lista delle api vedrai che ci sono molte funzioni che 
difficilmente trovi nei programmini free per generare pdf
 
 
BFS
 
 


Ah capisco, interessante
Ho usato solo Acrobat non sapevo che i vari pdf-atori alternativi non 
facessero queste funzioni

 il vantaggio è che non devi comprare acrobat pro 
 
 
Bravo, ma già che ci sei potresti pubblicare il codice che hai scritto per i posteri.
 
Saluti
 


quello della firma no visto che è complesso e usa una valanga di altre 
funzioni interne del mio gestionale
 
ma ad titolo di esempio, per ottenere le prime due pagine di un pdf :
(il concetto è sempre lo stesso poi...basta cambiare la API da richiamare)
 
Dim apiKey As String
apiKey = "miaapiket"  'si ottiene iscrivendosi al portale
 
'url doc su drive
Dim url As String
url = "https://....blabla.pdf" ' documento su googole drive
 
Dim objXMLHTTP As Object
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
'info pdf
'ottengo il token
sUrl = " 
https://api.pdf.co/v1/pdf/split
"
sPostData = "{'url':'" & url & 
"','Pages':'1,2','name':'diviso.pdf','inline':'true'}"
With objXMLHTTP
     .Open "POST", sUrl, False
     .setRequestHeader "Content-Type", "application/json"
     .setRequestHeader "x-api-key", apiKey
     .send (Replace(sPostData, "'", """"))
     Set Ris = ParseJSON(.responseText)
 
 
    Debug.Print "Link pdf 1 : " & Ris.Item("obj.urls(0)")
    Debug.Print "Link pdf 2 : " & Ris.Item("obj.urls(1)")
 
End With
 
 
 
in pratica il mio pdf viene splittato e ottengo come risultato della api 
i due link alle due pagine che mi servono
 
 
BFS
 


Bello, interessante.
 
Saluti