PB9如何实现datawindow打印导出PDF,PB导出PDF

PB9如何实现datawindow打印导出PDF,PB导出PDF?

之前的saveas导出pdf,设置非常麻烦。需要

1. 安装gs705w32.exe

2. 设置系统path:  C:\gs\gs7.05\bin (以实际安装目录为准)

3. 安装虚拟打印机 PowerBuilder9.0自带的:

 Sybase\Shared\PowerBuilder\drivers\ADIST5.INF 手动添加打印机

4. 代码导出

dw_print.Object.DataWindow.Export.PDF.Method = Distill!
dw_print.Object.DataWindow.Printer = 'Acrobat Distiller'
dw_print.Object.DataWindow.Export.PDF.Distill.CustomPostScript="Yes" 

ll_ret2 = dw_print.SaveAs('文件名称', PDF!, false)
 

这个方法现在对于win64不支持。各位朋友可以看看12.5这样的版本支持不。

------------------------------------------------------

今天客户提出要我给他在某个界面做一个自动打印体检表导出或者打印成pdf放到web服务器上面去。

测试了上面的思路不行,而且现在离谱的是连gs705w32.exe也无法下载到。

我觉得直接用print成pdf(借助虚拟机)比较方便和符合。但是像doPDF和pdffactory每次都要提示保存文件名。比较麻烦。没法自动化操控。

偶尔看到一个Adobe Acrobat XI安装后的pdf打印机有个打印机首选项设置,可以设置直接保存到某个目录,而打印文件名,pb的datawindow.printer参数可以指定的。所以能实现自动化导出到某个文件夹。实现服务器自动运行,自动服务。

1. 安装 Adobe Acrobat XI,需要系列号,安装后需要验证成正式版,否则打印时会弹出。这个自己想办法。也有人说有从安装包分立的只带打印机的安装(Adobe PDF Printer v7.0,Adobe PDF Printer v9.0,Adobe PDF Printer v10.0这三个我安装了的确能显示打印机图标,但是是灰色的,打印时返回 -1,但是我没有找到能用的。

2. 控制面板\硬件和声音\设备和打印机》Adobe PDF打印机》右键》打印机首选项》

 如图,选择导出的文件夹。并且取消打印后预览。以方便我们自动运行。

打印按钮的代码:

fileid ++

dw_1.object.datawindow.print.DocumentName=string(fileid)+".pdf"    //设置打印文档名

//dw_1.object.datawindow.printer="doPDF v7"  //有弹出保存按钮,文件名

dw_1.object.datawindow.printer="adobe PDF"    //这个就厉害了,设置好了文件名,就不弹出保存界面。

int li_i
li_i= dw_1.print()        //dw的print不选打印机,所以adobe PDF需要设置成默认打印机
messagebox('结果',String(li_i))

 简单测试程序。点击按钮:

 任务栏右下角提示:

 导出的文件非常正常,实际工作中以系统编号pdf。这样可以给客户在web上面下载。

打开看看:

遗留的问题:adobe安装中,哪些文件构成对打印机的支持。如果可以提取那部分,就好了。

这方法只适合服务器这样的安装,不适合其他客户端的安装。费劲了。

**点击queren也是一个办法。

***后记,今天在另外一个软件里面看到了 如下代码:

li_ret = obj_pdfwriter.connecttonewobject("Bullzip.PDFPrinterSettings")
obj_pdfwriter.init()
obj_pdfwriter.setprintername("Bullzip PDF Printer")
obj_pdfwriter.setvalue("ShowSettings","never")
obj_pdfwriter.setvalue("ShowPDF","no")

就证明这个打印机也不错。我找到几个别人的截图,大家有空去研究吧

 

 

 上面的代码里面只是用编程方式设置了这些属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/31707.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【雕爷学编程】Arduino动手做(120)---游戏摇杆扩展板

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

变化太快的Roop项目(版本1.0.1)

文章目录 (一)版本1.0.1的变化(1.1)项目依赖(1.2)模型位置(1.3)命令行(1.4)界面UI(1.5)处理与结果 最早的🔗接触和介绍&am…

2023亚马逊云科技中国峰会引领无服务器架构新潮流:Serverlesspresso Workshop

序言 在今年3月,我有幸接触了一个项目,也因此结识了 亚马逊云科技无服务器架构 Serverless。在陆续了解 Amazon 产品的过程中,我逐渐发现它所带给我的惊喜远远超出了最初的预期。 今天,想向大家介绍一个名为 Serverlesspresso Wor…

树莓派+Docker+cpolar(内网穿透)+Nignx

首先安装Raspberry Pi Imager,用于给SD卡安装系统镜像。 使用Raspberry Pi Imager(树莓派镜像烧录器)烧录镜像文件到SD中,操作步骤如下图所示: docker安装nginx提供web服务 获取最新版本的docker安装包: su…

Kafka系列之:一次性传送和事务消息传递

Kafka系列之:一次性传送和事务消息传递 一、目标二、关于事务和流的一些知识三、公共接口四、示例应用程序五、新配置六、计划变更1.幂等生产者保证2.事务保证 七、关键概念八、数据流九、授权十、RPC 协议总结1.获取请求/响应2.生产请求/响应3.ListOffset请求/响应…

web前端框架JS学习之JavaScript类型转换

vascript有多种数据类型,如字符串、数字、布尔等,可以通过typeof语句来查看变量的数据类型。数据类型转换就是数据类型之间相互转换,比如把数字转成字符串、把布尔值转成字符串、把字符串转成数字等,这在工作也是经常碰到的。 本…

Excel VBA 编程入门

Visual Basic for Applications(VBA)是一种用于 Microsoft Office 套件中的编程语言,它可以帮助您自动化重复性任务、定制应用程序以及增强工作效率。本文将向您介绍 Excel VBA 编程的基础知识,并通过示例帮助您入门。 1、启用“开…

CSS样式优先级怎样划分?【CSS优先级规则】

定义CSS样式时,经常出现两个或更多样式规则应用在同一元素上的情况。此时CSS就会根据样式规则的权重,优先显示权重最高的样式。CSS优先级指的就是CSS样式规则的权重。在网页制作中,CSS为每个基础选择器都指定了不同的权重,方便我们…

Vue中如何进行分布式任务调度与任务监控

Vue中如何进行分布式任务调度与任务监控 在复杂的系统中,如何有效地进行任务调度和监控是一个非常重要的问题。分布式系统中,任务调度和监控则更加复杂。Vue是一款流行的前端框架,本文将介绍如何在Vue中进行分布式任务调度和监控。 什么是分…

图扑智慧地下采矿,“像素游戏”智能呈现

在这个像素世界里,我们需要一个智能地下采矿可视化综合管理平台,来帮助我们管理和监控地下采矿全流程。 图扑软件依托自主研发的 HT for Web 产品,结合三维定制化渲染、动态模拟、物理碰撞、5G、物联网、云计算及大数据等先进技术&#xff0c…

cookie、session、token学习笔记

一.cookie 1.什么是cookie? Cookie用于存储web页面的用户信息。 Cookie是一些数据,存储于你电脑的文本文件中。 当web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息。 而Cookie的作用就是用于解决“如…

【论文阅读】Graph-less Collaborative Filtering

【论文阅读】Graph-less Collaborative Filtering 文章目录 【论文阅读】Graph-less Collaborative Filtering1. 来源2. 介绍3. 模型解读3.1 协同过滤3.2 模型3.2.1 对比知识精馏 3.2.2 自适应对比正则化3.2.3 SimRec的参数学习 4. 实验5. 总结 1. 来源 2023WWW CCFA原文地址co…

CDN和DNS

目录 宽带,窄带,带宽区别和联系如何计算带宽带宽和网速的区别和联系 CDNCDN的原理CDN的好处CDN和通信行业DNS和CDN的区别与联系用户访问未使用CDN缓存网站的过程为使用了CDN缓存后的网站的访问过程变为 CDN加速服务 DNSDNS对好处公共 DNS114 DNS阿里DNS百…

UE4/5动画系列(1.模板制作)

目录 动画模板制作 同步模板组制作 有模板做什么都方便,所以这里我们做一个动画蓝图的模板(动物专用) 动画模板制作 第一步创建一个动画蓝图的模板 然后找到第三人称的模板,将其模板的蓝图改名: 在动画蓝图的模板里…

使用mount临时挂载出现mount error(13): Permission denied

问题报错 mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) //报错信息,提示账号密码错误,其实并不是 添加secntlmssp参数即可;中途可能需要等一些时间 mount -t cifs -o usernamelisi,p…

基于Servlet+JDBC实现的基础博客系统>>系列2 -- 前端基础页面

目录 1. 博客公共页面样式 2. 博客列表页 3. 博客详情页 4. 博客登录页 5. 博客编辑页 1. 博客公共页面样式 导航栏以及背景图设置 <body> <!-- 1.navigation 导航栏 --><div class"nav"><!-- logo --><img src"image/logo.png&q…

JS获取省市区/县,layui获取省市区,layui实现省市区联动,jquery实现省市区联动

前言 通过JS方式获取省市区数据&#xff0c;可自己手动更改JS文件数据 非常简单 效果 实现 百度网盘链接: https://pan.baidu.com/s/1RktJgXY0NP7Eq0ohvBPOEA 提取码: 477z gitee下载链接&#xff1a;https://gitee.com/yuanyongqiang/common-files/blob/master/area.js 下…

轮廓检测及功能

一、实验介绍 1. 实验内容 本实验将学习轮廓检测及功能。 2. 实验要点 生成二进制图像来查找轮廓找到并画出轮廓轮廓特征边界矩形 3. 实验环境 Python 3.6.6numpymatplotlibcv2 二、实验步骤 1 导入资源并显示图像 import numpy as np import matplotlib.pyplot as pl…

C语言进阶教程(再论指针和数组3)

文章目录 前言一、a和&a的区别二、数组作为函数参数总结 前言 本篇文章继续讲解指针和数组。 一、a和&a的区别 1.数组名&#xff08;例如 a&#xff09;表示整个数组。当使用数组名时&#xff0c;它会被解释为对整个数组的引用。例如&#xff0c;可以使用 a[0] 来访…

Attention is all you need

这篇文章最大的亮点就是提出了一种Transformer的结构&#xff0c;是完全依赖注意力机制来刻画输入和输出之间的全局依赖关系&#xff0c;而不使用递归运算的RNN网络了。这样的好处就是第一可以有效的防止RNN存在的梯度消失的问题&#xff0c;第二是允许所有的字全部同时训练(RN…