(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。)
【阅读倡议】
1、有问题请留言;
2、没问题请点赞;
3、看连载请加群;
4、下源码请加群;
【开发工具】
1、C++Builder and Delphi 10.3.3
2、FMSoft_uniGUI_Complete_Professional_1.70.0.1542(正版)
本人主笔的国内第一本uniGUI教学案例代码已诞生,分为cbuilder和delphi两个版本,买代码送手册,需要的朋友可以加入我的QQ技术交流群484979943给我(群主)留言。资料简介:
https://www.meipian.cn/20b86ayo?share_from=others&user_id=64168117&uuid=a8a75af8c0cc31e6a21b8a79a2b07398&share_depth=1&first_share_uid=64168117&utm_medium=meipian_android&share_user_mpuuid=94b70e99e8b6986c71b270a9883befb2
本案例基于移动版控件UnimPDFFrame实现,同样适用于电脑版控件UniPDFFrame。
一、cBuilder版
UnimPDFFrame是一个能够在浏览器里打开服务器端PDF文件的手机控件,支持打印功能,支持自动目录,挺不错滴。还可以添加按钮UnimBitBtn或按钮组UnimToolBar来添加翻页控制代码。
- 布局
控件名称 | 属性 | 取值 | 说明 |
UnimPDFFrame1 | Align | alClient | 占满屏幕空间 |
2、功能
在MainmForm上放一个UnimPDFFrame控件,编译项目,将项目目录下的pdf子目录下的pdf文件拷贝到D:\c_mdemo_p1c3_1_25\Win32\Debug\files目录下,运行浏览器打开页面,将看到UnimPDFFrame1打开了files目录下的pdf文件。
3、代码
1)Mainm.cpp引用ServerModule.h头文件
//---------------------------------------------------------------------------
#include <vcl.h>
#include <uniGUIVars.hpp>
#pragma hdrstop
#include "Mainm.h"
#include "MainModule.h"
#include "ServerModule.h"
//---------------------------------------------------------------------------
2)MainmForm窗口的OnBeforeShow事件打开pdf文件
void __fastcall TMainmForm::UnimFormBeforeShow(TObject *Sender)
{
UnimPDFFrame1->Align=alClient;//自动占满剩余空间
UnimPDFFrame1->PdfURL=UniServerModule()->FilesFolderURL+"b16config.pdf";
}
3)打开首页
void __fastcall TMainmForm::UnimToolButton1Click(TObject *Sender)
{
UniSession->AddJS (UnimPDFFrame1->JSName + ".iframe.contentWindow.document." + "getElementById (\"firstPage\").click()");
}
4)打开尾页
void __fastcall TMainmForm::UnimToolButton4Click(TObject *Sender)
{
UniSession->AddJS (UnimPDFFrame1->JSName + ".iframe.contentWindow.document." + "getElementById (\"lastPage\").click()");
}
5)打开后一页
void __fastcall TMainmForm::UnimToolButton3Click(TObject *Sender)
{
UniSession->AddJS (UnimPDFFrame1->JSName + ".iframe.contentWindow.document." + "getElementById (\"next\").click()");
}
6)打开前一页
void __fastcall TMainmForm::UnimToolButton2Click(TObject *Sender)
{
UniSession->AddJS (UnimPDFFrame1->JSName + ".iframe.contentWindow.document." + "getElementById (\"previous\").click()");
}
7)打开第几页
void __fastcall TMainmForm::UnimToolButton6Click(TObject *Sender)
{
UniSession->AddJS (UnimPDFFrame1->JSName + ".iframe.contentWindow.PDFViewerApplication.page=" + IntToStr(3));
}
8)打印PDF文档
void __fastcall TMainmForm::UnimToolButton5Click(TObject *Sender)
{
UniSession->AddJS (UnimPDFFrame1->JSName + ".iframe.contentWindow.document." + "getElementById (\"print\").click()");
//或UniPDFFrame1->JSInterface->JSCall("iframe.contentWindow.print","");
}
二、Delphi版
UnimPDFFrame是一个能够在浏览器里打开服务器端PDF文件的手机版控件,支持打印功能,支持自动目录,挺不错滴。还可以添加按钮UnimBitBtn或按钮组UnimToolBar来添加翻页控制代码。
- 布局
控件名称 | 属性 | 取值 | 说明 |
UnimPDFFrame1 | Align | alClient | 占满屏幕空间 |
2、功能
在MainmForm上放一个UnimPDFFrame控件,编译项目,将项目目录下的pdf子目录下的pdf文件拷贝到D:\d_mdemo_p1c3_1_25\Win32\Debug\files目录下,运行浏览器打开页面,将看到UnimPDFFrame1打开了files目录下的pdf文件。
3、代码
1)Mainm.cpp引用ServerModule
uses
uniGUIVars, MainModule, uniGUIApplication, ServerModule;
function MainmForm: TMainmForm;
begin
Result := TMainmForm(UniMainModule.GetFormInstance(TMainmForm));
end;
2)MainmForm窗口的OnBeforeShow事件打开pdf文件
procedure TMainmForm.UnimFormBeforeShow(Sender: TObject);
begin
UnimPDFFrame1.Align:=alClient;
UnimPDFFrame1.PdfURL:=UniServerModule.FilesFolderURL+'b16config.pdf';
end;
3)打开首页
procedure TMainmForm.UnimToolButton1Click(Sender: TObject);
begin
UniSession.AddJS (UnimPDFFrame1.JSName + '.iframe.contentWindow.document.' + 'getElementById ("firstPage").click()');
end;
4)打开尾页
procedure TMainmForm.UnimToolButton4Click(Sender: TObject);
begin
UniSession.AddJS (UnimPDFFrame1.JSName + '.iframe.contentWindow.document.' + 'getElementById ("lastPage").click()');
end;
5)打开前一页
procedure TMainmForm.UnimToolButton2Click(Sender: TObject);
begin
UniSession.AddJS (UnimPDFFrame1.JSName + '.iframe.contentWindow.document.' + 'getElementById ("previous").click()');
end;
6)打开后一页
procedure TMainmForm.UnimToolButton3Click(Sender: TObject);
begin
UniSession.AddJS (UnimPDFFrame1.JSName + '.iframe.contentWindow.document.' + 'getElementById ("next").click()');
end;
7)打开第几页
procedure TMainmForm.UnimToolButton6Click(Sender: TObject);
begin
UniSession.AddJS (UnimPDFFrame1.JSName + '.iframe.contentWindow.PDFViewerApplication.page=' + IntToStr(3));
end;
8)打印所有页
procedure TMainmForm.UnimToolButton5Click(Sender: TObject);
begin
UniSession.AddJS (UnimPDFFrame1.JSName + '.iframe.contentWindow.document.' + 'getElementById ("print").click()');
//或MainForm.pdfFrame.JSInterface.JSCall('iframe.contentWindow.print', []);
end;