Pagina 1 di 1

[Risolto] Esportazione pdf e campo data

Inviato: martedì 13 marzo 2012, 17:36
da c.spaziani
Salve,
mi accade una cosa strana: in un modello writer è presente un controllo campo data che viene aggiornato all'apertura in questo modo:

Codice: Seleziona tutto

Sub DataOggi
Dim oDoc
Dim oData
Dim oDataCtrl
	oDoc = ThisComponent
	oData = oDoc.DrawPage.Forms.GetByIndex(0).getByName("CampoData")
	oDataCtrl = oDoc.CurrentController.getControl(oData)
	oDataCtrl.setDate(CDateToIso(Date()))
End Sub
Il campo sia a video che in stampa riporta la data corretta, mentre se esporto in pdf, il campo non tiene conto delle modifiche effettuate via macro.
Si tratta di un bug?

Re: Esportazione pdf e campo data

Inviato: sabato 17 marzo 2012, 12:17
da Mizio1961
Ciao. Per verificare se è un bug puoi allegare il file così lo si prova su altri sistemi?

Re: Esportazione pdf e campo data

Inviato: lunedì 19 marzo 2012, 19:59
da c.spaziani
Su Windows, per replicare l'errore utilizzare il seguente documento:
CampoDataWin.odt
(9.39 KiB) Scaricato 286 volte
che contiene all'interno solamente un campo data impostato sulla data 01/01/12.

Se si esegue la macro

Codice: Seleziona tutto

Sub DataOggi
Dim oDoc
Dim oData
Dim oDataCtrl
   oDoc = ThisComponent
   oData = oDoc.DrawPage.Forms.GetByIndex(0).getByName("CampoData")
   oDataCtrl = oDoc.CurrentController.getControl(oData)
   oDataCtrl.setDate(CDateToIso(Date()))
End Sub
il campo viene aggiornato con la data odierna.
Il problema si presenta esportando il file in pdf, infatti la data riamane quella iniziale.
Cambiando la data a mano questo non succede.

Su Linux, Ubuntu 11.10 con LibreOffice 3.5.0 350m1(Build:13), il file precedente stranamente dà errore e non viene nemmeno letto!
Ho creato un file identico partendo da linux:
CampoDataLinux.odt
(9.41 KiB) Scaricato 207 volte
Risultato: non riesco ad accedere al campo data da macro.
Se provo ad aprire il file creato su linux da windows, stavolta il file si apre, il campo data è presente ma non è visibile (si può selezionare in modalità bozza, ma le proprietà non sono accesibili) e riscontro lo stesso problema ad accedervi via macro (insomma è inutilizzabile!!).
Che ne pensate?

Re: Esportazione pdf e campo data

Inviato: martedì 20 marzo 2012, 14:27
da Mizio1961
Ho fatto alcune prove con le opzioni di esportazione.
Nel mio caso il risultato è stato che impostando come formato di esportazione il tipo PDF/A-1a nella scheda Generale del dialog delle opzioni, il file si porta la data impostata tramite macro (ad es per oggi 20/03/12).
Guardando un pò di cosa tratta questo parametro mi sembra di capire che il comportamento sia corretto così in quanto anche in PDF posso fare delle automazioni.
Forse gli altri formati (soprattutto quello Crea formulario PDF) leggono il campo come programmabile, quindi lo lasciano sull'impostazione di base in modo da consentirne la riprogrammazione in PDF.
By Mizio

Re: Esportazione pdf e campo data

Inviato: martedì 20 marzo 2012, 18:12
da c.spaziani
Hai ragione, salvando nel formato PDF/A-1a il problema non si presenta!
Ho riscritto la macro per salvare in pdf e inviare per email (che è quello che alla fine mi serviva) utilizzando il formato PDF/A-1a...

Codice: Seleziona tutto

Sub ConvertToPDFandSend
Dim FileProperties(1) As New com.sun.star.beans.PropertyValue
	BasicLibraries.LoadLibrary("Tools")
	oDoc = ThisComponent
	sFilePDF = GetPathSettings("Temp") + "/SenzaNome.pdf"
	If oDoc.hasLocation Then
		sFilePDF = GetPathSettings("Temp") + "/" + GetFileNameWithoutExtension(FileNameoutofPath(oDoc.getURL)) + ".pdf"
	End If
	FileProperties(0).Name = "FilterName"
	FileProperties(0).Value = "writer_pdf_Export"
	FileProperties(1).Name = "SelectPdfVersion"
	FileProperties(1).Value = 1 'PDF/A-1a
	oDoc.storeToURL(sFilePDF, FileProperties())
	eMailer = createUnoService("com.sun.star.system.SimpleSystemMail")
	eMailClient = eMailer.querySimpleMailClient()
	eMessage = eMailClient.createSimpleMailMessage()
	eMessage.setAttachement(Array(sFilePDF))
	eMailClient.sendSimpleMailMessage(eMessage, 0)
	Kill(sFilePDF)
End Sub
...quindi posso dire di aver raggiunto il mio scopo senza dover rimettere mano a una cinquantina di modelli! :super:

Per quanto riguarda l'utilizzo dei campi data rimangono i problemi di compatibilità tra windows e linux e altri problemi legati alla gestione degli eventi che ho segnalato tempo fa sulla ML dev-it, ma per il momento va bene così... Grazie!

Re: [Risolto] Esportazione pdf e campo data

Inviato: martedì 20 marzo 2012, 20:47
da Mizio1961
Prego
Fa sempre piacere riuscire ad essere di aiuto
Saluti e 'buon divertimento' ;)