Italian community of Lazarus and Free Pascal
Programmazione => Componenti Aggiuntivi => Topic aperto da: CortelliStefano - Dicembre 03, 2011, 11:07:59 pm
-
Un saluto a tutto il forum.
Volevo sapere se qualcuno si era imbattuto in SynPdf (Synopse) per la creazione di files PDF:
http://synopse.info/forum/viewtopic.php?pid=1305
che sembrerebbe molto interessante in quanto permetterebbe di creare PDF/A.
L'ho trovato dopo un po' di ricerche sul Web per cercare qualcosa che mi permettesse di generare dei files PDF/A, l'ho scaricato dall'area download:
http://synopse.info/fossil/wiki?name=Downloads
ma (ho provato velocemente) ho subito incontrato qualche errore di compilazione se provo ad utilizzare le units in Lazarus (per lo meno sotto Linux, non so sotto Windows, non ho avuto tempo di provare).
Mi dice che non trova le units Windows, Libc, la stessa unit SynLz che invece era presente... forse mi sbaglio, ma mi pare di capire che forse il porting vs. FPC non è ancora completo.
Nel codice mi sembra di avere trovato alcune direttive di compilazione con l'indicazione di FPC e Linux, e questo mi ha fatto ben sperare, ma cercando con Google non ho trovato molto riguardo l'utilizzo con Lazarus e, più in generale, con FPC.
Qualcuno di voi è riuscito ad utilizzare correttamente questo componente con Lazarus?
Finora ho utilizzato, con molta soddisfazione, PowerPdf, ma stava cercando un componente che supportasse il formato PDF/A (in particolare PDF A/1).
Sarebbe eccellente se si riuscisse a fare funzionare SynPdf sotto Lazarus, credo potrebbe interessare molti, soprattutto per il futuro, quando il file PDF/A verrà sempre più richiesto (ad oggi l'obbligo è limitato ai bilanci da depositare ed agli atti del Registro Imprese, ma è presumbile che verrà sempre più esteso, soprattutto per garantire la corretta lettura dei PDF negli anni).
A titolo di informazione, il formato PDF/A è un formato che contiene tutti i fonts utilizzati ed ha una serie di caratteristiche che ne consentono la corretta visualizzazione nel tempo, anche se i fonts utilizzati non fossero pertanto presenti sul pc da cui si visualizza il PDF.
Buona serata a tutti,
Stefano
-
Ciao Stefano, non ho mai usato quel componente, ma da quello che mi dici sembrerebbe essere stato studiato solo per windows, visto che ti richiede la unit Window. Anche io uso PowerPDF per generare i report di LazReport in PDF. Ma nulla più. Speriamo che qualcuno ci sia già imbattuto!
-
Ciao, e grazie della risposta!
Da quello che viene indicato nel componente, a suo tempo era stato pensato anche per Linux, nelle note vedo che già dalla versione 1.15 compilava per Linux, ma per Kylix (Borland):
- now compiles under CrossKylix, and tested under Linux
Guardando qua e là il codice, vedo direttive di compilazione per Linux e Windwos, ed anche per FPC, p.es.:
uses
{$ifdef MSWINDOWS}
Windows,
Messages,
{$endif}
{$ifdef LINUX} // for Kylix
Libc,
Types,
{$endif}
e:
{$ifndef FPC} { make cross-compiler and cross-CPU types available to Delphi }
type
/// a CPU-dependent unsigned integer type cast of a pointer / register
// - used for 64 bits compatibility, native under Free Pascal Compiler
{$ifdef ISDELPHI2009}
PtrUInt = cardinal; { see http://synopse.info/forum/viewtopic.php?id=136 }
{$else}
PtrUInt = {$ifdef UNICODE}NativeUInt{$else}cardinal{$endif};
{$endif}
/// a CPU-dependent unsigned integer type cast of a pointer of pointer
// - used for 64 bits compatibility, native under Free Pascal Compiler
PPtrUInt = ^PtrUInt;
/// a CPU-dependent signed integer type cast of a pointer / register
// - used for 64 bits compatibility, native under Free Pascal Compiler
PtrInt = {$ifdef UNICODE}NativeInt{$else}integer{$endif};
/// a CPU-dependent signed integer type cast of a pointer of pointer
// - used for 64 bits compatibility, native under Free Pascal Compiler
PPtrInt = ^PtrInt;
/// unsigned Int64 doesn't exist under older Delphi, but is defined in FPC
QWord = {$ifdef UNICODE}UInt64{$else}Int64{$endif};
{$endif}
cose che farebbero ben sperare che il componente abbia qualche chances di funzionare sotto Lazarus...
Anche se penso che il porting vs. FPC e vs. Linux (FPC, non Kylix) sia ancora incompleto, per questo ci sono ancora errori.
Magari qualche esperto riesce a farlo funzionare sotto Lazarus? :)
Ciao Buona domenica a tutti,
Stefano