i´m not sure if XbpHTMLViewer() or Acrobat Reader will work in Future ...
XbpHTMLViewer() are based on ieFrame.DLL which come with Internet Explorer and is not supported any more.
Arcobat Reader Support will stop this Year ...
---
do you know SumatraPDF reader http://www.sumatrapdfreader.org
it is Open Source which you can get here
https://github.com/sumatrapdfreader/sumatrapdf
you can run it from Command Line ( better ShellOpenFile() ) as "Server" and there is a Portable Version (no install)
it does support "plugin" and with a "Trick" it can be used as Viewer "in a Window" ( hWnd )

good news : i have a working xBase Sample
bad new : it is not Xbase++
but what i can see in Source Code seems "simple" as it use SendMessage()
to translate it for Xbase++ i got other Problem : Unicode
i don´t know if Xbase++ v2.x support Unicode String Function like AT(), TRIM(), SUBSTR() etc.
also Ot4xb seems not to have Unicode Sring Function so i´m not sure if it will work correct with Xbase++ when send/receive String
---
the Trick you find here https://www.sumatrapdfreader.org/docs/C ... ments.html
to show a PDF this is all what User needDeveloper options
-console : Opens a console window alongside SumatraPDF for accessing (MuPDF) debug output.
-stress-test <path> [file-filter] [range] [cycle-count]
Renders all pages of the indicated file/directory for stability and performance testing. E.g.:
-stress-test file1.pdf 25x
-stress-test file2.pdf 1-3
-stress-test dir *.pdf;*.xps 15- 3x
renders file1.pdf 25 times,
renders pages 1 to 3 of file2.pdf and renders all but the first 14 PDF and XPS files from dir 3 times.
-bench <filepath> [page-range] : Renders all pages (or just the indicated ones) for the given file
and then outputs the required rendering times for performance testing and comparisons.
Often used together with -console.
Code: Select all
#include "HMG.CH"
PROCEDURE MAIN(cFile)
LOCAL cHwnd
IF .NOT. FILE(cFile)
MsgInfo("need PDF")
RETURN
ENDIF
DEFINE WINDOW ShowPDF ;
ROW 10 ;
COL 10 ;
WIDTH 1024 ;
HEIGHT 1024 ;
MAIN ;
TITLE cFile ;
ICON "MYICO" ;
NOSIZE ;
BACKCOLOR { 250,241,228 }
DEFINE WINDOW PdfView ;
ROW 10 ;
COL 10 ;
WIDTH 1000 ;
HEIGHT 960 ;
PANEL ;
BACKCOLOR { 250,241,228 }
END WINDOW
END WINDOW
cHwnd := ALLTRIM( STR( GETFORMHANDLE( 'PdfView' ) ) )
EXECUTE FILE 'SumatraPDF.exe' PARAMETERS '-lang en -plugin ' + cHwnd + ' ' + cfile
ON KEY ESCAPE OF ShowPDF ACTION ShowPDF.Release
CENTER WINDOW ShowPDF
Activate Window ShowPDF
RETURN