QuickPdf und page extraction

Nutzung, Komponenten, .NET

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 page extraction

Beitrag von Rudolf »

Hallo,
habe mehrere Probleme mit Quickpdf.
1. beim Rendern von PDF zu EPS wird das Ergebnisfile viel größer, z.B. PDF mit 3 Seiten hat ca. 17000 Byte, das EPS einer einzelnen Seite fast 3MB
// Parameter : DPI, vonSeite,bisSeite,4 für EPS,Ausgabefiel
.:RenderDocumentToFile(96,1,1,4,"test.eps") // 4 = EPS output

2. ich versuche aus einem PDF einzelne Seiten zu extrahieren, aber bekomme immer einen Fehler "403 Could not open output file "

Code: Alles auswählen

WITH OBJECT ( oPdf := TQuickPdf():New() )   // Hintergrundpdf
          n := .:ExtractFilePages("test.pdf","","test2.pdf","1") // habe auch versucht Passwort auf NIL zu setzen oder Ragen "1-2"
          c := .:LastErrorCode()//          403  Could not open output file
     .:Destroy()
END WITH
return .t.
Die Doku sagt für diese FUnktion:
Description

Extracts ranges of pages from a PDF document on disk and places the extracted pages into a new PDF document.
Function DebenuPDFLibrary0913.PDFLibrary::ExtractFilePages(InputFileName As String,
Password As String, OutputFileName As String,
RangeList As String) As Long
Parameters
InputFileName The path and name of the document that contains the pages to extract.
Password The password to use when opening the document
OutputFileName The path and name of the document to create containing the extracted pages.
RangeList The pages to extract, for example "10,15,18-20,25-35". Invalid characters will be ignored. Reversed page ranges such as "5-1" will be accepted. Duplicate page numbers will be accepted but if a change is made to such a page the same changes will appear on the duplicate pages. The list of pages will not be sorted so the resulting document will have the pages in the specified order.
Return values
0 The pages could not be extracted. Use the LastErrorCode function to determine the cause of the failure.
1 The pages were extracted successfully

Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: QuickPdf und page extraction

Beitrag von brandelh »

ich mache ja nix mit ActiveX, aber die normale Funktion will doch einen Unicodestring oder ?
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 page extraction

Beitrag von Rudolf »

Hallo Hubert,
normal braucht man bei ot4xb nichts in Unicode umwandeln, sonst funktioniert alles problemlos. Habe das Problem auch mal ins QUickpdf Formum gestellt. Wäre nur interessante ob andere das gleiche Problem haben
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: QuickPdf und page extraction

Beitrag von brandelh »

Bei der DLL Version muss ich seit Version 8 die ANSI Funktionen wählen, sonst geht nix.

Hast du es mal mit der Version 7 probiert, bei dieser musste man solche Namen als UTF-8 angeben, "TEST1.PDF" ist in UTF-8 und ANSI identisch, nicht aber in UNICODE UTF-16 ...

Ich sehe gerade, dass sich der Parameteraufbau der Funktion geändert hat ... mein Programm hier hat mit der alten Version (2011) hat funktioniert:

Code: Alles auswählen

#include "Xbp.ch"
#include "Gra.ch"
#include "Common.ch"
#include "ot4xb.ch"
#include "HBPrintPDF.ch"

   cPDF_OK       := "Quelle.PDF" 
   aSeiten         := { { "Ziel_0001_Inhalt.pdf"                 ,  "1-4" },;
                          { "Ziel_0002_Einleitung.pdf"             ,  "5-26" },;
                          { "Ziel_01_Basis.PDF"                    ,  "83-88" } } // gekürzt

   cPfadZiel := "Ziel"

   CreateDir( cPfadZiel )

   oPDF := HBPrintPDF():new():create() 

   if oPDF:IsOK
      ? "HBPrintPDF geladen"
      ? "DLL-Version:",oPDF:LibraryVersion()
      for x = 1 to len(aSeiten)
         cZielPDF := cPfadAufteilung1 + "\" + aSeiten[x,1]
         if fExists(cZielPDF)
            ?    "überspringe:   " + cZielPDF
         else
            if oPDF:ExtractFilePages( cPDF_OK , cZielPDF , aSeiten[x,2] )
               ? "Datei erzeugt: "+cZielPDF
            else
               ? "Fehler bei :   "+cZielPDF
               ?             "        ERR:   "+alltrim(str(oPDF:LastErrorCode()) )
               msgbox("Fehler bei : "+chr(13)+cZielPDF+chr(13)+" ERR: "+alltrim(str(oPDF:LastErrorCode())),"Fehler" )
               quit
            endif
         endif
      next
      oPDF:destroy()

   else

      msgbox("HBPrintPDF Objekt konnte nicht erzeugt werden" , "Fehler")

   endif

return
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: QuickPdf und page extraction

Beitrag von brandelh »

Du hast wohl Recht mit dem String, bei der ActiveX Beschreibung steht immer string, vermutlich macht das die ActiveX Schnittstelle selbst ... fragen kann dennoch nicht schaden ;-)
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 page extraction

Beitrag von Rudolf »

Hallo Hubert,
danke für den Tip, funktioniert jetzt, meine Doku ist anscheinend alt, ich habe noch das Passwort als Parameter drin, dann funktioniert es natürlich nicht. Hast Du einen Link auf die aktuelle Doku ?
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: QuickPdf und page extraction

Beitrag von brandelh »

Nein, das Passwort als Parameter kam wohl mit der 8.x und die 9.x hat es auch drinn.
Die 7.26 hat diesen Text
ActiveX hat geschrieben:Function QuickPDF0726.PDFLibrary::ExtractFilePages(InputFileName As String, OutputFileName As String,RangeList As String) As Long
Die ändern dauernd die Parameterzeile ... du verwendest offensichtlich die 7.x Version ;-)

PS: die geänderten Parameter und Funktionsnamen versuche ich in meiner Klasse auszugleichen, aber das geht nicht immer ;-)
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 page extraction

Beitrag von Rudolf »

Hallo Hubert,
war mir zumindest eine Lehre ;-) werde jetzt immer vorher schauen wenn ich ein Problem habe ob sich die Parameter geändert haben.
Grüße
Rudolf
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: QuickPdf und page extraction

Beitrag von brandelh »

Nimm einfach die richtige PDF Hilfedatei, ich habe 3 davon auf meinem Rechner ;-)
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 page extraction

Beitrag von Rudolf »

Hallo Hubert,
habe immer die Online Version verwendet und nicht das PDF, habe den Link sofort gelöscht ;-)
Grüße
Rudolf
Antworten