医疗终端札记

news2024/11/17 11:51:21

在这里插入图片描述


文章目录

  • 一、打印
    • Windows 下打印 PDF
    • 打印 Word
    • 转换格式


一、打印

Windows 下打印 PDF

从 Windows 命令行打印 PDF

AcroRd32.exe /t "C:\Path\To\Your\File.pdf" "PrinterName"
# 其中,“C:\Path\To\Your\File.pdf”是您要打印的PDF文件的完整路径,“PrinterName”是您要使用的打印机的名称。
# 这将启动Acrobat Reader并自动将指定的PDF文件发送到打印机进行打印。请注意,“/t”选项将Acrobat Reader设置为“传统打印模式”,这意味着直接将文件发送到打印机而不会打开Acrobat Reader界面。

用Python实现PDF自动打印至打印机
PDFtoPrinter: Command-line PDF printing

# To print a PDF file to the default Windows printer, use this command:
PDFtoPrinter filename.pdf

# To print to a specific printer, add the name of the printer in quotation marks:
PDFtoPrinter filename.pdf "Name of Printer"

# If you want to print to a network printer, use the name that appears in Windows print 
# dialogs, like this (and be careful to note the two backslashes at the start of the name and
# the single backslash after the servername):
PDFtoPrinter filename.pdf "\\SERVER\PrinterName"

打印 Word

Python:通过Win32模块操作Office对象之打印

def print_word():
    from win32com.client.gencache import EnsureDispatch
    from win32com.client import constants

    Word = EnsureDispatch("Word.Application")  # 连接/创建Word对象(打开Word程序)
    f = r"z:\123.docx"

    doc = Word.Documents.Open(f)  # 打开Word文档
    doc.PrintOut()  # 打印(到默认打印机);如果默认打印机为虚拟打印机,则会弹出保存文件对话框(需要选择保存文件的格式和路径)
    doc.Close(constants.wdDoNotSaveChanges)  # (不保存)关闭Word文档

    Word.Quit()  # 退出Word程序


def print_execl():
    from win32com.client.gencache import EnsureDispatch
    from win32com.client import constants

    Excel = EnsureDispatch("Excel.Application")  # 打开Excel程序
    f = r"z:\34.xlsx"

    wb = Excel.Workbooks.Open(f)  # 打开Excel工作簿
    sht = wb.Sheets("Sheet1")  # 指定工作表
    sht.PrintOut()  # 打印工作表
    wb.Close(constants.xlDoNotSaveChanges)  # (不保存)关闭工作簿

    Excel.Quit()  # 退出Excel程序

Java生成固定格式word并打印word文档解决方案【windows环境】
printword.exe

转换格式

Golang 实现word和Excel处理

package main

import (
	ole "github.com/go-ole/go-ole"
	"github.com/go-ole/go-ole/oleutil"
)

func wordToPdf(fileName string) {
	ole.CoInitialize(0)
	unknown, _ := oleutil.CreateObject("Word.Application")
	word, _ := unknown.QueryInterface(ole.IID_IDispatch)
	oleutil.PutProperty(word, "Visible", false)
	documents := oleutil.MustGetProperty(word, "Documents").ToIDispatch()
	document := oleutil.MustCallMethod(documents, "Open", fileName).ToIDispatch()
	oleutil.MustCallMethod(document, "SaveAs2", "z:/123_2.pdf", 17).ToIDispatch()
	document.Release()
	documents.Release()
	word.Release()
	ole.CoUninitialize()
}

func excelToPdf(fileName string) {
	ole.CoInitialize(0)
	unknown, _ := oleutil.CreateObject("Excel.Application")
	excel, _ := unknown.QueryInterface(ole.IID_IDispatch)
	oleutil.PutProperty(excel, "Visible", false)
	workbooks := oleutil.MustGetProperty(excel, "Workbooks").ToIDispatch()
	workbook, _ := oleutil.CallMethod(workbooks, "Open", fileName)
	//defer workbook.ToIDispatch().Release()
	worksheet := oleutil.MustGetProperty(workbook.ToIDispatch(), "Worksheets", 1).ToIDispatch()
	//defer worksheet.Release()
	ps := oleutil.MustGetProperty(worksheet, "PageSetup").ToIDispatch()
	oleutil.PutProperty(ps, "LeftHeader", "")
	oleutil.PutProperty(ps, "CenterHeader", "")
	oleutil.PutProperty(ps, "RightHeader", "")
	oleutil.PutProperty(ps, "LeftFooter", "")
	oleutil.PutProperty(ps, "CenterFooter", "")
	oleutil.PutProperty(ps, "RightFooter", "")
	oleutil.PutProperty(ps, "LeftMargin", 0)
	oleutil.PutProperty(ps, "RightMargin", 0)
	oleutil.PutProperty(ps, "TopMargin", 0)
	oleutil.PutProperty(ps, "BottomMargin", 0)
	oleutil.PutProperty(ps, "HeaderMargin", 0)
	oleutil.PutProperty(ps, "FooterMargin", 0)
	oleutil.PutProperty(ps, "Orientation", 2)
	oleutil.PutProperty(ps, "Zoom", false)
	oleutil.PutProperty(ps, "FitToPagesWide", 1)
	oleutil.PutProperty(ps, "FitToPagesTall", false)
	oleutil.PutProperty(ps, "CenterVertically", true)
	oleutil.PutProperty(ps, "CenterHorizontally", true)
	oleutil.PutProperty(ps, "Draft", false)
	oleutil.PutProperty(ps, "FirstPageNumber", true)
	oleutil.MustCallMethod(worksheet, "ExportAsFixedFormat", 0, "z:/34_2.pdf").ToIDispatch()
	ps.Release()
	worksheet.Release()
	workbooks.Release()
	excel.Release()
	ole.CoUninitialize()
}

func main() {
	wordToPdf("z:/123.docx")
	excelToPdf("z:/34.xlsx")
}

Word VBA 參考 microsoft
Word 解决方案 microsoft


Python pywin32实现word和Excel的处理

pip install pywin32
def word_to_pdf():
    from win32com import client as wc

    pythoncom.CoInitialize()
    file_path = 'Z:/123.docx'
    try:
        word = wc.gencache.EnsureDispatch('word.application')
    except:
        try:
            word = wc.gencache.EnsureDispatch('kwps.application')  # 如果使用wps
        except:
            word = wc.gencache.EnsureDispatch('wps.application')  # 如果使用wps
    newpdf = word.Documents.Open(file_path)
    word.Visible = 0
    newpdf.SaveAs(f'Z:/123.pdf', FileFormat=17)
    newpdf.Close()
    pythoncom.CoUninitialize()

def execl_to_pdf():
    from win32com import client as wc

    try:
        excel = wc.DispatchEx('Excel.Application')
    except:
        try:
            excel = wc.DispatchEx('ket.Application')
        except:
            excel = wc.DispatchEx('et.Application')
    newpdf = excel.Workbooks.Open(r'Z:\34.xlsx')
    excel.DisplayAlerts = 0
    # 获取第一个sheet
    all_sheets = [sheet.Name for sheet in newpdf.Sheets]
    ws_source = newpdf.Worksheets(all_sheets[0])
    # 设置页面设置
    ws_source.PageSetup.LeftHeader = ""
    ws_source.PageSetup.CenterHeader = ""
    ws_source.PageSetup.RightHeader = ""
    ws_source.PageSetup.LeftFooter = ""
    ws_source.PageSetup.CenterFooter = ""
    ws_source.PageSetup.RightFooter = ""
    # ws_source.PageSetup.FitToPagesTall = 0
    ws_source.PageSetup.FirstPageNumber = True
    ws_source.PageSetup.LeftMargin = 0
    ws_source.PageSetup.RightMargin = 0
    ws_source.PageSetup.TopMargin = 0
    ws_source.PageSetup.BottomMargin = 0
    ws_source.PageSetup.HeaderMargin = 0
    ws_source.PageSetup.FooterMargin = 0
    # ws_source.PageSetup.PaperSize = 1
    ws_source.PageSetup.Orientation = 2  # 横向转换pdf
    ws_source.PageSetup.FitToPagesWide = 1  # 所有列压缩在一页纸
    ws_source.PageSetup.FitToPagesTall = False
    ws_source.PageSetup.Zoom = False  # 所有列压缩在一页纸
    ws_source.PageSetup.CenterVertically = True
    ws_source.PageSetup.CenterHorizontally = True
    ws_source.PageSetup.Draft = False
    ws_source.Select()
    # 行列自动调整
    # ws_source.Columns.AutoFit()
    # ws_source.Rows.AutoFit()
    # 设置Excel的边框
    rows = ws_source.UsedRange.Rows.Count
    cols = ws_source.UsedRange.Columns.Count
    ws_source.Range(ws_source.Cells(1, 1), ws_source.Cells(rows, cols)).Borders.LineStyle = 1
    ws_source.Range(ws_source.Cells(1, 1), ws_source.Cells(rows, cols)).Borders.TintAndShade = 0
    ws_source.Range(ws_source.Cells(1, 1), ws_source.Cells(rows, cols)).Borders.Weight = 1
    # 转换为PDF文件
    newpdf.ExportAsFixedFormat(0, r'Z:\34.pdf')
    newpdf.Close()
    excel.Quit()

Python的Pywin32库:简化Windows编程的强大工具


如何使用Golang生成和转换PDF文档

golang打印机控制,go 打印机

   

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式软件开发笔试面试

C语言部分: 1.gcc的四步编译过程 1.预处理 展开头文件,删除注释、空行等无用内容,替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误,如果有错则报错,没有错误则生成汇编文件。 gcc -S hello.i -o h…

在线录音工具分享,总有一款适合你!

“有人知道怎么在线录音吗?在网页上播放了一首民谣,觉得旋律很好听,但是不能下载,就想用录音的方式记录下来,可是完全不会操作,真的很急!有没有好心人教教我,谢谢!” 随…

衍射:经典波动行为

一、说明 在本页中,我将尝试引导您了解光背后的基础知识。光是粒子还是波? 衍射是与光传播偏差相关的现象的通用名称,与几何光学预测的偏差(即光的直线传播)有关,它揭示了光的性质波而不是微粒物质。 图1&a…

为T507-H开发板配置Samba服务,实现跨系统的文件共享——飞凌嵌入式

作为一款经典的国产芯,全志T507-H芯片被广泛应用于车载电子、电力、医疗、工业控制、物联网、智能终端等诸多领域当中,而在各种复杂的嵌入式Linux应用场景当中,“打通ARM板卡与Windows设备间的壁垒以实现跨平台的文件共享”是一项不能被忽视的…

IStoreOS结合内网穿透软件Cpolar实现公网远程访问

文章目录 前言1. ssh局域网登陆iStoreOS系统2. 安装Cpolar内 网穿透软件3. 测试公网远程链接4. 公网使用固定http地址远程访问iStoreOS webui界面 前言 iStoreOS系统是基于OpenWrt定制的软路由系统,提供了如轻nas,云盘,文件共享等众多网络服务…

21款奔驰EQC350升级原厂360全景影像 感受上帝视野

您是否经历过这种场面呢? 停车位,狭窄障碍停车困难 避免盲区,倒车盲区危及生命安全 狭窄路段,无法判断是否安全通过 视角盲区,小孩站在视野盲区看不到,Xjh15863 360度无缝3D全车可见,解决各…

最新《中国环境统计年鉴》2001-2022年-EXCEL面板数据

数据简介:本数据汇集全国31个省、直辖市环境方面的面板数据,涵盖自然状况、水环境、海洋环境、大气环境、固体废物、自然生态、土地利用、林业、自然灾害及突发事件、环境投资、城市环境、农村环境等11个一级指标,数百个二级、三级指标。通过…

照片后期编辑工具Lightroom Classic 2024 mac中文新增功能

Lightroom Classic 2024(lrC2024)是专为摄影爱好者和专业摄影师设计的软件,它提供了全面的照片编辑工具,可以精准调整照片的色彩、对比度和曝光等参数,以便定制后期处理效果。 在lrC2024中,用户体验得到了提…

【Mysql】Mysql中的B+树索引(六)

概述 从上一章节我们了解到InnoDB 的数据页都是由7个部分组成,然后各个数据页之间可以组成一个双向链表 ,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表 ,每个数据页都会为存储在它里边儿的记录生成一个页目录 &#xff…

随着Telegram的崛起,这些特性和运营方法你得知道~

截止至2023年6月,Telegram已成为除了WhatsApp之外全球苹果应用商店中用户下载量最多的社交网络应用,这个新兴的社媒平台正在逐渐扩大它的影响力。Telegram的崛起也意味着出现了新的商机,要怎么把握这个热门社媒来进行营销也成了各出海企业最关…

MapGIS 10.6 Pro新品发布!加速地理信息领域核心技术国产替代

10月18日,国产GIS软件厂商中地数码在深圳举办“时空筑基智绘九州”新品发布会,正式推出新一代全空间智能GIS升级之作——MapGIS 10.6 Pro。来自全国各地的地理信息产业专家学者汇聚一堂,共话地信科技自立自强,助推产业高质量发展。…

Steam中如何设置HTTP服务器防封

要在 Steam 中设置HTTP服务器,请按照以下步骤操作: 1、打开 Steam 客户端。 2、点击“设置”(即齿轮图标),然后选择“网络”。 3、在“网络”页面中,找到“HTTP服务器”部分。 4、首先,将“使…

抖音招聘直播报白是通过直播方式展现职位信息适用于企业和人力资源公司

首先,视频展示职位能够给求职者更直观的感受,让他们更好地了解岗位的详情和要求。其次,抖音的短视频流量能够让岗位信息覆盖更广泛的人群,增加招聘信息的曝光度。此外,抖音招聘的成本也较低,相比传统的人工…

智荟雄安,创想未来 | 竹云董事长受邀出席雄安新区2023软件和信息技术服务业创新发展论坛并作主题演讲

10月18日,以“智荟雄安 创想未来”为主题的雄安新区2023软件和信息技术服务业创新发展论坛在雄安新区国际酒店会议中心召开。河北省委常委,雄安新区党工委书记、管委会主任张国华出席活动。 中国科学院院士朱鲁华现场致辞,中国工程院院士邬贺…

AC修炼计划(AtCoder Regular Contest 167)

传送门:AtCoder Regular Contest 167 - AtCoder 再次感谢樱雪喵大佬的题解,讲的很详细,Orz。 大佬的博客链接如下:Atcoder Regular Contest 167 - 樱雪喵 - 博客园 (cnblogs.com) 第一题很签到,就省略掉了。 第二题…

函数设计心得:尽量避免布尔型参数

通常来说,我认为在设计一个函数原型的时候,应该尽量避免使用布尔类型的参数,除非函数名称能十分清楚的将这个参数的意思表达出来。 我并没有想教你做事,但是请听我细说 先举两个正面的例子,有一个 API 函数 EnableWi…

系统韧性研究(2)|系统韧性如何关联其他质量属性?

对大多数人来说,如果一个系统在逆境中继续执行它的任务,那么它会被认为具有韧性。换句话说,尽管过度的压力或多或少都会导致系统中断,但如果系统依然能够正常运行并提供所需的能力,则可认为该系统具备韧性。 系统韧性…

显示杂谈(二)winscope的使用

WinScope 提供了用于在窗口转换期间和转换后记录和分析 WindowManager 状态和 SurfaceFlinger 状态的基础架构和工具。WinScope 将所有相关的系统服务状态记录在一个跟踪文件中,您可以使用该文件重现并逐步查看转换。 抓winscope相关文件: 通过快捷设置记录跟踪情…

git初学者使用教程(包含Android studio中git使用)

文章目录 1、登录 / 注册git账号2、创建git仓库3、设置git的用户名和邮箱4、创建git仓库5、已有仓库推送代码到远程仓库6、进阶使用,命令行和Android studio软件使用1. 克隆(Clone)源码仓库2. 查看仓库状态(Status)3. …

JAVA获取30天或某段范围日期的方法

JAVA获取30天或某段范围日期的方法,在项目使用中比较频繁。 public class Main {public static void main(String[] args) {DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");LocalDate now = LocalDate.now();List<String> dateLi…