Windows C++ 实现远程虚拟打印机(远程共享打印机)
编译错误已经修改完后的工程修改后的下载地址
https://download.csdn.net/download/2403_83063732/88928550
1、下载clawpdf(0.8.7版本)
https://github.com/clawsoftware/clawPDF
2、打开clawpdf工程开始编译C#工程,出现如下错误:
This project references NuGet package(s) that are missing on this computer.
解决方式:
打开(SystemInterface/SystemWrapper)项目的.csproj文件,把如下几行删除保存,重新打开clawpdf编译
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
3、重新编译,clawpdf
如果出现sign等关键字错误,则对C#工程右键属性,关闭签名即可
4、修改clawPDF-master\clawmon\monitorUI\下面的monitorUI.cpp
文件有点问题,找到这个文件的第495行
//controlliamo se la porta esiste gi? bRes = XcvDataW(printer, L"PortExists", (PBYTE)pc.szPortName, sizeof(pc.szPortName),
将光标定位在bRes前面,按下回车换行,使之和496行组合成为
5、出现找不到该文件情况

主要是工程没有默认带这些文件(https://download.csdn.net/download/2403_83063732/88928534),需要去下载放到clawPDF-master\clawPDF-0.8.7\clawPDF目录下
6、接下来就能成功编译完成了
7、添加/删除虚拟打印机命令行
SetupHelper.exe /Printer=Add /Name=ExamplePrinter
SetupHelper.exe /Printer=Remove /Name=ExamplePrinter
8、设置ftp后传输
运行程序后点击文件参数设置

9、测试打印,会在FTP服务器目录下看到一个PDF文件
10、如何实现远程打印机呢?
无非就是在FTP服务器接收到后调用第三方库PDFLIB去打印PDF文件
https://www.pdflib.com/download/pdflib-product-family/
11、如何修改不使用FTP去进行传输
修改clawPDF.Core工程下的FtpAction.cs的文件,
Check函数就是验证FTP传输的参数配置有没有问题,FtpUpload就是更新函数。可以再这边修改成TCP、UDP传输就行
相关文章:
Windows C++ 实现远程虚拟打印机(远程共享打印机)
编译错误已经修改完后的工程修改后的下载地址 https://download.csdn.net/download/2403_83063732/88928550 1、下载clawpdf(0.8.7版本) https://github.com/clawsoftware/clawPDF 2、打开clawpdf工程开始编译C#工程,出现如下错误…...
【jvm】java对象占用内存问题深入解析
一个Java对象占用多大内存-CSDN博客 关于Object o new Object()追魂九连问(个人学习笔记) - 知乎JVM(Java虚拟机)-史上最全、最详细JVM笔记-CSDN博客...
金现代产品方案部部长王宁,将出席“ISIG-低代码/零代码技术与应用发展峰会”
3月16日,第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导,企智未来科技(LowCode低码时代、RPA中国、AIGC开放社区)主办。大会旨在聚合每一位产业成员的力量,深入探索低…...
数据结构——lesson7二叉树 堆的介绍与实现
前言💞💞 啦啦啦~这里是土土数据结构学习笔记🥳🥳 💥个人主页:大耳朵土土垚的博客 💥 所属专栏:数据结构学习笔记 💥对于数据结构顺序表链表有疑问的都可以在上面数据结…...
阿里云DSW做AI绘画时的显卡选择A10?V100?
V100是Volta架构,A10是Ampere架构,架构上讲A10先进点,其实只是制程区别,用起来没区别。 V100是HBM的内存读取,带宽大,但是DDR5的。 二块卡都是全精度为主的算力卡,半精度优势不明显。 需要用…...
MySQL安装使用(mac)
目录 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 一、下载MySQL 打开 MySql 官方下载页面 我是macOS12,所以选择了8.0.30 下载完成之后,打开安装,一直下一步安装完成,在最后安装完成时,会弹出…...
Qt控制台项目也能使用opencv的imshow来显示摄像头视频
创建一个Qt控制台项目,目的是实现在控制台打开摄像头视频。由于windows平台是支持GUI(图形用户界面)功能,所以在windows环境下是可以打开的,但是linux环境下,由于不支持GUI功能,而是支持wayland,…...
前端缓存使用规范
一、Cookie使用规范 cookie的存储空间非常有限且会携带在请求头中会浪费不必要的流量,如果仅仅是为存储数据,可以采用其他替代方案,例如 webStorage,非必要不使用cookie。 1、使用方法 注意:过期时间时需转换成UTC格…...
Linux rmmod命令教程:如何卸载内核模块(附实例详解和注意事项)
Linux rmmod命令介绍 rmmod(全称:remove module)用于从Linux内核中卸载已加载的内核模块。它允许您在运行时移除不再需要的模块,以释放系统资源或更改内核配置。 Linux rmmod命令适用的Linux版本 rmmod在大多数Linux发行版中通…...
中国气象要素年度空间插值数据集
摘要 中国气象要素年度空间插值数据集是地理遥感生态网平台基于全国2400多个站点的气象要素站点日观测数据,在计算各气象要素年值的基础上,基于Anuspl插值软件生成1960-2021年各年度蒸发量、地温、降水量、气压、相对湿度、日照时数 、气温、风速8个气象…...
链表习题-力扣oj (附加思路版)
LCR 140. 训练计划 IIhttps://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt 个训练项目编号。 思路:双指针,快指针先走cnt…...
HNU-计算机网络-甘晴void学习感悟
前言 计算机网络其实我没太学懂, 仅从应试来说,考试成绩也不太好。 这也是为什么一直没有更新这一学科的学习感悟。 大三下还是有点闲,一周三天小长假,闲来无事还是给写了。 教材使用这本: 总领 期中考试 30% 期…...
混合输入矩阵乘法的性能优化
作者 | Manish Gupta OneFlow编译 翻译|宛子琳、杨婷 AI驱动的技术正逐渐融入人们日常生活的各个角落,有望提高人们获取知识的能力,并提升整体生产效率。语言大模型(LLM)正是这些应用的核心。LLM对内存的需求很高&…...
安卓Kotlin面试题 41-50
41、如何在 Kotlin 中实现 Builder 模式?首先,在大多数情况下,您不需要在 Kotlin 中使用构建器,因为我们有默认和命名参数,但如果您需要使用://add private constructor if necessary class Car( val model: String?,val year: Int) { private constructor(build…...
portainer管理远程docker和docker-swarm集群
使用前请先安装docker和docker-compose,同时完成docker-swarm集群初始化 一、portainer-ce部署 部署portainer-ce实时管理本机docker,使用docker-compose一键拉起 docker-compose.yml version: 3 services:portainer:container_name: portainer#imag…...
分销商城微信小程序:用户粘性增强,促进复购率提升
在数字化浪潮的推动下,微信小程序作为一种轻便、高效的移动应用形式,正成为越来越多企业开展电商业务的重要平台。而分销商城微信小程序的出现,更是为企业带来了前所未有的机遇。通过分销商城微信小程序,企业不仅能够拓宽销售渠道…...
深度学习与机器学习:互补共进,共绘人工智能宏伟蓝图
在人工智能的广阔天地中,深度学习与机器学习如同两支强大的队伍,各自闪耀着独特的光芒,却又携手共进,共同书写着智能的辉煌篇章。尽管深度学习是机器学习的一个分支,但它们在模型构建、特征提取以及应用场景等多个方面…...
Vue.js 实用技巧:深入理解 Vue.mixin
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
【Spring Boot 3】读取resource文件
【Spring Boot 3】读取resource文件 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或…...
BUUCTF:[MRCTF2020]ezmisc
题目地址:https://buuoj.cn/challenges#[MRCTF2020]ezmisc 下载附件打开是一张照片: 放到kali中发现crc校验错误,修改照片宽高: 保存即可发现flag flag为: flag{1ts_vEryyyyyy_ez!}...
软件可用性管理中的MTTR优化
软件可用性管理中的MTTR优化:提升系统可靠性的关键策略 在数字化时代,软件系统的可用性直接影响用户体验和业务连续性。平均修复时间(MTTR)是衡量系统可靠性的核心指标之一,它反映了从故障发生到问题解决所需的平均时…...
摄影入门 | 从光到电:数码相机的成像核心
1. 从胶片到数码:感光技术的革命 还记得小时候第一次看到胶片相机时的好奇吗?那时候按下快门后要等上好几天才能看到照片,而现在我们用数码相机拍完立刻就能查看。这种变化的核心,就是感光技术的革命性突破。 传统胶片相机依赖的是…...
M9A:基于视觉感知的《重返未来:1999》智能自动化框架技术解析
M9A:基于视觉感知的《重返未来:1999》智能自动化框架技术解析 【免费下载链接】M9A 重返未来:1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A 在现代策略游戏领域,玩家面临的…...
保姆级教程:在Fedora/CentOS上用QEMU-KVM跑起ARM64虚拟机(附Debian镜像下载)
在Fedora/CentOS上构建高性能ARM64虚拟化环境的完整指南 对于需要在x86架构上开发和测试ARM64应用的工程师来说,搭建一个稳定高效的虚拟化环境是刚需。本文将带你从零开始,在Fedora或CentOS系统上配置完整的QEMU-KVM虚拟化栈,并针对ARM64架构…...
保姆级教程:在Ubuntu 20.04上从源码编译运行ORB_SLAM2(附TUM数据集测试)
从零构建ORB_SLAM2:Ubuntu 20.04实战指南与深度解析 在计算机视觉领域,同时定位与地图构建(SLAM)技术一直是研究热点。ORB_SLAM2作为特征点法的代表作,以其出色的实时性和精度成为众多开发者的首选。本文将带你从源码…...
Degrees of Lewdity汉化版终极配置指南:从零开始的中文游戏体验
Degrees of Lewdity汉化版终极配置指南:从零开始的中文游戏体验 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localiza…...
Linux RT 调度器核心原理:固定优先级与 O (1) 调度实现
一、简介:为什么你需要理解 RT 调度器 在工业自动化、音视频处理、高频交易等对时延敏感的场景中,普通 Linux 进程的调度延迟往往难以满足需求。Linux 内核从 2.6 版本开始引入了完善的实时调度框架,通过 SCHED_FIFO 和 SCHED_RR 两种策略&a…...
别再只用if-else了!用Java 8的Predicate让你的业务校验代码更优雅(附真实项目重构案例)
用Java 8的Predicate重构业务校验代码:从if-else地狱到声明式编程 记得去年接手一个老项目时,看到超过200行的用户注册校验方法,里面嵌套了十几层if-else判断,各种条件分支像迷宫一样让人头晕目眩。更可怕的是,每次业务…...
如何快速实现C++与JavaScript无缝交互?nbind终极指南
如何快速实现C与JavaScript无缝交互?nbind终极指南 【免费下载链接】nbind :sparkles: Magical headers that make your C library accessible from JavaScript :rocket: 项目地址: https://gitcode.com/gh_mirrors/nb/nbind nbind是一个强大的开源工具&…...
Lingo3D React集成实战:构建交互式3D游戏界面的完整指南
Lingo3D React集成实战:构建交互式3D游戏界面的完整指南 【免费下载链接】lingo3d Lingo3D is a web-first 3d game development library with React and Vue integration. 项目地址: https://gitcode.com/gh_mirrors/li/lingo3d Lingo3D是一个面向Web的3D游…...
