Quickpdf und Files mergen

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Quickpdf und Files mergen

Beitrag von Rudolf »

Hallo,
ich möchte PDF Files über über QuickPDF zusammenfügen, dazu verwende ich addtofilelist() und mergefilelist(). Ich kann zwar die einzelnen Dateien zur Filelist hinzufügen, aber beim mergen bekomme ich als Rückgabewert immer 0, funktioniert also nicht. Die Files sind aber sicher vorhanden weil ich auch zur Sicherheit immer mit fexists() prüfe. Hat jemand schon einmal PDF Dokumenten zusammengefügt ? Gibt es eine andere Lösung ?
Grüße
Rudolf

Code: Alles auswählen

function mergepdf(aAuf)
******************************************************************
local cFile,x,oPDF,nSuccess,cExport := addpath(al_path,"\export\test.pdf")
WITH OBJECT ( oPdf := TQuickPdf():New() )
     .:clearFileList("Auftrag")
     for x  := 1 to len(aAuf)
          cFile := addpath(al_path,"\export\a_" + alltrim(aAuf[x,1]) + ".pdf")
          if fexists(cFile)
              nSuccess := .:AddToFileList("Auftrag",cFile) // immer 1, also ok
          endif
     next x
     nSuccess := .:MergeFileList("Auftrag","test.pdf") // immer 0 und kein File wird erstellt
     .:Destroy()
END WITH
winapiopen(cExport)
return .t.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Hi,

bei mir funtioniert das so ...

Code: Alles auswählen

... 
   set charset to ansi  // WICHTIG !
...
   oHBPrintPDF := HBPrintPDF():new():create() 

   if oHBPrintPDF:IsOK
      ? "HBPrintPDF geladen"
      ? "DLL-Version:",oHBPrintPDF:LibraryVersion()
...
      ? "Aufteilungsstufe 2 ergänzen"

      cBeHePDF := cPfadAufteilung1+"\Beispiel3.PDF"

      for x = 1 to 14
         cPDF     := cPfadAufteilung1+"\Beispiel_"+strzero(x,2)+"_Basis.PDF"
         cPhyPDF  := cPfadAufteilung1+"\Beispiel_"+strzero(x,2)+"_Text2.pdf"
         cZielPDF := cPfadAufteilung2+"\Beispiel_"+strzero(x,2)+"_Basis.PDF"

         ? "Dateiliste füllen"
         ? cPDF,    " => ", oHBPrintPDF:AddToFileList("AddFileList", cPDF )      , "Anzahl in Liste: ",oHBPrintPDF:FileListCount("AddFileList")
         if fExists(cPhyPDF)
            ? cPhyPDF, " => ", oHBPrintPDF:AddToFileList("AddFileList", cPhyPDF )   , "Anzahl in Liste: ",oHBPrintPDF:FileListCount("AddFileList")
         endif
         ? cBeHePDF," => ", oHBPrintPDF:AddToFileList("AddFileList", cBeHePDF )  , "Anzahl in Liste: ",oHBPrintPDF:FileListCount("AddFileList")
         ? "merge nach ", cZielPDF, " => "
         if oHBPrintPDF:MergeFileList("AddFileList",cZielPDF) = oHBPrintPDF:FileListCount("AddFileList")
            ?? " OK "
         else
            msgbox("Fehler bei " + cPDF)
            ?? "Fehler bei " + cPDF
         endif
         ? "ClearFileList()", oHBPrintPDF:ClearFileList("AddFileList" )          , "Anzahl in Liste: ",oHBPrintPDF:FileListCount("AddFileList")

      next
und hier das Protokoll:

Aufteilungsstufe 2 ergänzen

Code: Alles auswählen

HBPrintPDF geladen
DLL-Version: 7.26

Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_01_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           2
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_01_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_02_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           2
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_02_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_03_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel_03_Text2.pdf  =>           1 Anzahl in Liste:           2
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           3
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_03_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_04_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel_04_Text2.pdf  =>           1 Anzahl in Liste:           2
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           3
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_04_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_05_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel_05_Text2.pdf  =>           1 Anzahl in Liste:           2
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           3
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_05_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_06_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel_06_Text2.pdf  =>           1 Anzahl in Liste:           2
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           3
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_06_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_07_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel_07_Text2.pdf  =>           1 Anzahl in Liste:           2
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           3
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_07_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_08_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel_08_Text2.pdf  =>           1 Anzahl in Liste:           2
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           3
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_08_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_09_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel_09_Text2.pdf  =>           1 Anzahl in Liste:           2
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           3
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_09_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_10_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           2
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_10_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_11_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           2
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_11_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_12_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           2
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_12_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_13_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           2
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_13_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Dateiliste füllen
Aufteilung_ERW_Stufe_1\Beispiel_14_Basis.PDF  =>           1 Anzahl in Liste:           1
Aufteilung_ERW_Stufe_1\Beispiel3.PDF  =>           1 Anzahl in Liste:           2
merge nach  Aufteilung_ERW_Stufe_2\Beispiel_14_Basis.PDF  =>  OK 
ClearFileList() J Anzahl in Liste:           0
Wenn Umlaute im Namen sind, muss ANSI oder sogar UTF-8 übergeben werden, meine Klasse überwacht das und wandelt nötigenfalls um.
Bei ActiveX bin ich mir nicht sicher, ich nutze nur die DLL Version mit meiner Basisklasse HBPrintPDF ;-)

PS: die PDF Namen habe ich auf Beispiel geändert.
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von Rudolf »

Hallo Hubert,
von den Funktionen scheint es gleich zu sein, aber das merge funktioniert nicht, nochmal mit Logfile
Grüße
Rudolf

Code: Alles auswählen

function mergepdf(aAuf)
******************************************************************
local cFile,x,oPDF,nSuccess,cExport := addpath(al_path,"\export\test.pdf")
prot(,"merge.log")
WITH OBJECT ( oPdf := TQuickPdf():New() )
     nSuccess := .:clearFileList("Auftrag")
     prot(ntrim(nSuccess) + " clear filelist ","merge.log")
     for x  := 1 to len(aAuf)
          cFile := addpath(al_path,"\export\a_" + alltrim(aAuf[x,1]) + ".pdf")
          if fexists(cFile)
              nSuccess := .:AddToFileList("Auftrag",cFile) // immer 1, also ok
              prot(ntrim(nSuccess) + " add filelist","merge.log")
              nSuccess := .:FileListCount("Auftrag") // immer 1, also ok
              prot(ntrim(nSuccess) + " items ","merge.log")
              prot("File:" + .:FileListItem("Auftrag",x),"merge.log")
          endif
     next x
     nSuccess := .:MergeFileList("Auftrag","test.pdf") // immer 0 und kein File wird erstellt
     prot(ntrim(nSuccess) + " files merged","merge.log")
     .:Destroy()
END WITH
winapiopen(cExport)
return .t.

Logfile:

0 clear filelist
1 add filelist
1 items
File:v:\straschil\export\a_00005.pdf
1 add filelist
2 items
File:v:\straschil\export\a_00007.pdf
0 files merged
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Wenn du die DLL Version von Pablo nutzt, solltest du prüfen, ob die Aufrufparameter identisch sind.
Meines Wissens wartet er seine Basisbibliothek nicht mehr (ist ja nur ein Beispiel) und es gab da gewisse Differenzen.
Hast du die neueste DLL der Serie ?

Ansonsten ... nimm meinen code und probier es aus ;-)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Wenn deine Dateinamen Umlaute oder sonstige Sonderzeichen enthalten, dann muss man höllisch aufpassen ob ANSI oder UTF-8 gewünscht wird.
Wenn nicht, kann es eigentlich nur ein Parameterfehler in der Definition sein.
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von Rudolf »

Hallo Hubert,
da ist sicher kein Umlaut drin, und OT4XB nutzt ja auch die DLL und nicht ActiveX, das ist der Aufruf dafür:

Code: Alles auswählen

METHOD TQuickPdf:MergeFileList(p1,p2)
return FpQCall({::_hdll_,"QuickPDFMergeFileList"},"__sl__sl__pt__pt",::_id_,p1,p2)
sehe da nichts ungewöhnliches
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Rudolf hat geschrieben:Hallo Hubert,
da ist sicher kein Umlaut drin, und OT4XB nutzt ja auch die DLL und nicht ActiveX
Ich frag nur weil wir hier im ActiveX Unterforum sind ;-)

Hier ist meine Umsetzung, bei "normalen" 7-Bit ASCII Zeichen besteht kein Unterschied zu UTF-8, somit müsste das gehen :

Code: Alles auswählen

METHOD HBPrintPDF:MergeFileList(cListName, FileName)
   cListName := ::ForceAnsi(cListName)
   FileName  := ::ForceUTF8(FileName)
return FpQCall( {::_hdll_,"QuickPDFMergeFileList"} ,"__sl__sl__pt__pt",::_id_,cListName, FileName)
Frag doch mal die Anzahl der Liste ab, nur zur Sicherheit.
Welche DLL Version nutzt du ? Die 7.26 war die neueste der 7.xx Serie.

Und schau mal hier, die Funktion FileListItem() soll die störende Datei aufzeigen:
7.26 hat geschrieben:The number of documents which were successfully merged together. If this
is less than the intended number use the FileListItem function to find the
file which caused the merge process to end prematurely.
Wobei, wenn es 0 zurück gibt, dann hat es ja noch nicht einmal angefangen ...
Du könntest mit FileListItem() von 1 bis :FileListCount() den jeweiligen Namen abfragen, mal sehen ob die so aussehen wie du es erwarten würdest.
Könnte es sein, dass die PDFs noch von einem anderen Programm geöffnet sind ?
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von Rudolf »

Hallo Hubert,
in meinem vorigen Posting siehst Du unten das Logfile zum Code, da sieht man dass die Files richtig in der filelist enthalten sind, auch die Anzahl vor dem Export stimmt. Habe auch ein Testprogramm mit zwei einfachen Dateien im aktuellen Datenpfad probiert, geht auch nicht. Es muss also etwas mit dem merge zu tun haben. Ich verwende die 7.123, also ziemlich neu.
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Hallo Rudolf,

ich kann auch nur raten :badgrin:
Ich verwende die 7.123, also ziemlich neu.
die gibt es nicht, vermutlich meinst du die 7.12 und die ist nicht neu ! Oder 7.23 ...
Lade doch einfach mal die 7.26 oder wühle dich durch die Fehlerbeschreibungen durch ;-)
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von Rudolf »

SORRY, die 7.23 hab ich natürlich ;-) aber wenn es bei Dir geht, dann kann es ja nicht an der DLL liegen. Ich werde mal ein Beispiel zusammenstellen und bei xbwin reinstellen, vielleicht funktioniert es bei anderen und nur bei mir nicht, dann ist es die DLL
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Rudolf hat geschrieben:SORRY, die 7.23 hab ich natürlich ;-) aber wenn es bei Dir geht, dann kann es ja nicht an der DLL liegen.
wieso, ich habe die 7.26 oder höher. Eventuell war in der 7.23 ein Fehler (das steht in deren Änderungsliste).
Eventuell liegt der Fehler aber auch schon beim AddFile (prüft der die Pfade etc. ?), daher mein Vorschlag mal anzusehen, was er so ausgibt ...
Natürlich könnte es auch an einer defekten / offenen PDF liegen ... mehr fällt mir nicht ein.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Ich sehe ja gerade, dass dein Code die Datei per LOG File ausgibt ... :oops:

Code: Alles auswählen

prot("File:" + .:FileListItem("Auftrag",x),"merge.log")
Ich habe es von "ActiveX" nach "Drucken und Export" geschoben, das passt besser ;-)
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von Rudolf »

Hallo Hubert,
das ist meine methode was mitzuschreiben, aber das Ergebnis passt aber immer. Ich glaube nur mit dem Beispielcode lässt sich das Problem lösen
Grüße
Rudolf
p.s. wo kann ich deine lib zum Testen runterladen ?
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Hallo Rudolf,

es ist schon möglich, dass es auch an den PDF liegt, aber wie gesagt, meine sind groß mit vielen Bildern und es geht (bisher) ohne Probleme.

Mein HBPrintPDF habe ich wie immer hier und auf meiner Homepage (da sind sicher immer die neuesten Versionen):

http://www.xbaseforum.de/viewtopic.php? ... pdf#p73193
http://www.familie-brandel.de/dateien/dat_index_d.html

je nach DLL Hauptversion (7, 8, 9) gibt es eine andere PRG, einfach diese und die CH bei PBuild angeben.
Die Lizenznummer kann man entweder einer Funktion beibringen oder eine SET Variable auf dem Entwicklerrechner setzen:

Code: Alles auswählen

QUICKPDF_07_REGKEY=...
QUICKPDF_08_REGKEY=...
QUICKPDF_09_REGKEY=...
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von Rudolf »

Hallo Hubert,
vielen Dank ! mit deiner Lib funktioniert es jetzt, dann muss es an OT4XB liegen, vielleicht findet Pablo etwas und korrigiert seine Version. Aber werde jetzt zur Sicherheit Deine verwenden.
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Hallo Rudolf,

Meine Klasse baute ursprünglich ja auf Pablos Klasse auf und ich nutze die OT4XB, ohne ginge es gar nicht.
Es ist auch noch jede Menge Service Code von Pablo drinn.
Allerdings finde ich die Syntax die Pablo verwendet (er kommt von C ) häufig etwas schwer lesbar ;-)
Daher verwende ich in meiner Klasse nach außen reinen einfachen Xbase++ code.

Ich halte aber auch von der DLLFUNCTION Syntax nicht viel, da auch diese Umsetzung teilweise seltsame Fehlermeldungen bringt.
Beispiel eine DLL ist nicht vorhanden, wird von einer DLLFUNCTION "unbekannte Funktion" zurückgegeben ...
In der HBPrintPDF kümmere ich mich intern um UTF-8, ANSI, OEM etc. Umwandlungen und in der Xbase++ Anwendung kommt genau der String an,
den diese aktuell braucht (ANSI, OEM) und man übergibt immer Xbase++ Strings-/Variablen wie sie gerade sind und die Klasse/Methode wandelt in das
Format, was die DLL gerade braucht (ANSI, UTF-8). Einige (aus meiner Sicht) umständliche Vorgehensweisen kapsle ich auch in einfacheren Methoden.

Wenn man dann z.B. von HBPrintPDF für QuickDLL 7.x auf 8 oder 9 wechselt, braucht man sich nicht um umbenannte Funktionen kümmern,
das mache ich intern (alter Name bleibt und neuer kommt hinzu). Bei 9 wird z.b. der DLL Name jeder Funktion geändert.
Wenn man das dann in jedem Anwendungsprogramm nachziehen muss / soll und dann auch noch die A (Ansi) bzw. UTF-8 Strings ins Spiel kommen, dann kommt Freude auf :-)
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von Rudolf »

Hallo Hubert,
na dann werde ich nur mehr Deine Version verwenden, Pablo hat nur ein Grundgerüst gemacht das bis jetzt ganz gut funktioniert hat, mit dem ich aber bald wegen ANSI, UTF-8 and die Grenzen stoße.
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Quickpdf und Files mergen

Beitrag von brandelh »

Das freut mich :D
Gruß
Hubert
Antworten