(48)uniGUI for cBuilder&Delphi PDF文档控制

(同一个世界,同一个梦想,交流学习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来添加翻页控制代码。

  1. 布局

 

控件名称

属性

取值

说明

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来添加翻页控制代码。

  1. 布局

 

控件名称

属性

取值

说明

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;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值