PDF-Datei mit Purebasic anzeigen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben:Ich weiß nicht ob man nicht doch Foxit nutzen kann?
ProgramID ist: FOXITREADEROCX.FoxitReaderOCXCtrl.1
Cool! Danke für den Hinweis. :allright:

Diese OCX kommt anscheinend mit der neuen Version 3.0, die ich noch
nicht installiert hatte. Ich erstelle dann mal den COMate-Code...

Grüße ... Kiffi

// Edit: Hier isser

Code: Alles auswählen

IncludePath #PB_Compiler_Home + "\srod\comate" ; Pfad anpassen!
XIncludeFile "comate.pbi"

Define.COMateObject FoxitReaderControl

OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Foxit Reader - Demo", #PB_Window_SystemMenu | #PB_Window_Invisible)
  
FoxitReaderControl = COMate_CreateActiveXControl(0, 0, 800, 600, "FOXITREADEROCX.FoxitReaderOCXCtrl.1")

If FoxitReaderControl = 0
  
  MessageRequester("", COMate_GetLastErrorDescription())
  
  End
  
EndIf

FoxitReaderControl\Invoke("OpenFile('D:\downloads\09328122.pdf')") ; Pfad anpassen!

While WindowEvent() : Delay(1) : Wend

HideWindow(0, #False)

Repeat
  
  WWE = WaitWindowEvent()
  
Until WWE = #PB_Event_CloseWindow

FoxitReaderControl\Release()
a²+b²=mc²
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hat der noch ein paar andere Properties? (keine Menüleiste usw.)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben:Hat der noch ein paar andere Properties? (keine Menüleiste usw.)
müsste ich mal schauen. Habe jetzt leider keine Zeit mehr, das
auszuprobieren. Melde mich heute Abend wieder...

Grüße ... Kiffi

// Edit: So wie es aussieht, ist OpenFile() die einzige Methode, die man
aufrufen kann. Keine sonstigen Einstellmöglichkeiten. Alles andere sind
Standardproperties.
a²+b²=mc²
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

Beitrag von Morty »

N'Abend.

Keine Lösung, sondern nur ein Erfahrungsbericht.
Foxit bietet eine DLL (SDK Package) zur einfachen Nutzung an. Damit kann man PDFs als Bilder rendern ... und all so Anzeigekram halt.
Da hab ich mich Ende letzten Jahres mit denen mal in Verbindung gesetzt, weil da kein Preis dran stand, und hab gefragt was die DLL den kosten solle.
Naja, nach vielen Fragen über Wie? Warum? In was für Software? Wie groß ist mein Unternehmen? Bla bla bla. Sagten sie mir, die DLL kostet 7600,- Euro. Dankend hab ich abgelehnt. :cry:

Gruß, Morty
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Hallo Kiffi,

wie ich heute morgen das Bord besuchte, staunte ich nicht schlecht.
Habe mich gleich daran gesetzt zu proggen.

Den untenstehenden Code habe ich verwendet und läuft auch durch.
Er zeigt aber nur ein leeres Fenster an.
Anscheinend genügt es nicht, nur die Komponente zu registrieren,
sondern der Foxitreader muß mit der Setup-Version richtig installiert werden.
Dann funktioniert das Programm einwandfrei, so wie ich es mir vorgestellt hatte.
Mit dem Installieren der Komponente könnte ich leben,
aber extra den Foxitreader installieren möchte ich nicht.

Hast du noch eine Idee, ohne den kompletten Foxitreader zu installieren?

Code: Alles auswählen

Define.COMateObject FoxitReaderControl

;FoxitReaderControl.COMateObject

OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Foxit Reader - Demo", #PB_Window_SystemMenu | #PB_Window_Invisible)
 
FoxitReaderControl = COMate_CreateActiveXControl(0, 0, 800, 600, "FOXITREADEROCX.FoxitReaderOCXCtrl.1")


MessageRequester("", Str(FoxitReaderControl ))


  If FoxitReaderControl = 0
    If COMate_RegisterCOMServer("FoxitReaderOCX.ocx") = #S_OK
      blnRegister = #True
      FoxitReaderControl = COMate_CreateActiveXControl(0, 0, 800, 600, "FOXITREADEROCX.FoxitReaderOCXCtrl.1")
    EndIf
  EndIf



If FoxitReaderControl = 0
 
  MessageRequester("", COMate_GetLastErrorDescription())
 
  End
 
EndIf

FoxitReaderControl\Invoke("OpenFile('C:\n.pdf')") ; Pfad anpassen!
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

dysti hat geschrieben:Hast du noch eine Idee, ohne den kompletten Foxitreader zu installieren?
dazu müsste man erst einmal herausfinden, ob es überhaupt erlaubt ist, die
Komponente(n) einzeln weiterzugeben.

Kann sich da jemand schlau machen?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
bembulak
Beiträge: 228
Registriert: 13.12.2005 16:34
Wohnort: Österreich

Beitrag von bembulak »

Kiffi hat geschrieben:Wenn Du (oder jemand anderer) eine kostenfreie Komponente findet, mit
der PDF angezeigt werden können, kann ich einen kleinen COMate-
Schnippsel dafür schreiben, damit man sie in PB verwenden kann.
http://de.wikipedia.org/wiki/Xpdf
http://www.foolabs.com/xpdf/

Könnte man nich versuchen, XPDF (Open Source) einzubinden?
Oder GhostScript/GhostView können das auch, soweit ich weiß.

http://de.wikipedia.org/wiki/Ghostview
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Hallo Kiffi und bembulak,

habt ihr aber schnell geantwortet.

@Kiffi schrieb:
dazu müsste man erst einmal herausfinden, ob es überhaupt erlaubt ist, die
Komponente(n) einzeln weiterzugeben.
Ich denke, erstmal probieren ob es überhaupt geht.
Wenn es gehen sollte, dann muß man sich schon überlegen, wie es weiter gehändelt werden sollte.

@bembulak, habe mir xpdf heruntergelanden. Der Viewer funzt nur unter Linux.
Leider habe ich hier mit Wind.....f zu tun, wie wir Linuxer sagen oder Dosbüchse. Diesen Ausdruck hörte ich unlängst unter den Macleuten.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Hatte noch eine andere Lösung ausgedacht.
Da ich die Dateien im Original in Word erstellt habe, versuchte ich diese als RTF-Datei abzuspeichern.
Nun ist leider das Problem, das zwar die Texte und Bilder übernommen werden,
aber z.B. die Pfeile, die mit der Word-Zeichnen-Funktion erstellt wurden, sind verschwunden.
Deshalb kam ich auf das PDF-Format.

Vielleicht könnt ihr mich ja zurecht schubsen!!!!!!!
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Little John

Beitrag von Little John »

bembulak hat geschrieben:Oder GhostScript/GhostView können das auch, soweit ich weiß.

http://de.wikipedia.org/wiki/Ghostview
Dann kann man doch ebensogut den Adobe Reader nehmen, oder nicht? ;-)

//edit:
dysti hat geschrieben:Nun ist leider das Problem, das zwar die Texte und Bilder übernommen werden,
aber z.B. die Pfeile, die mit der Word-Zeichnen-Funktion erstellt wurden, sind verschwunden.
Deshalb kam ich auf das PDF-Format.

Vielleicht könnt ihr mich ja zurecht schubsen!!!!!!!
Wenn es nur ums Anzeigen geht, ist natürlich im Prinzip eine Alternative, das Ganze als Graphik (z.B. PNG-Datei) zu speichern. Ich weiß aber nicht, ob das für Deine Zwecke in Frage kommt.

Gruß, Little John
Antworten