通过虚拟打印机获取其他软件的数据,实现数据传输

原创 2013年12月02日 14:55:42

某些软件没有提供合适的接口,无法直接获取其中的数据,但是一般都有打印功能。通过虚拟打印机可以获取其中的数据。

pdf打印机较为普遍,本文中通过将pdf转换为txt获取数据。转换利用了xpdf

def convert(fn):
    cmd=r'..\xpdfbin-win-3.03\bin32\pdftotext.exe -layout "%s.pdf" "%s.txt"' % (fn,fn)
    os.system(cmd)
def read3(ls,i):
    all=ls[i*3][:-1]+" "+ ls[i*3+1][:-1]+" "+ls[i*3+2][:-1]
    cs=all.split(" ")
    r=[]
    for  c in cs:
        if c<>"":
            r.append(c)
    return r
    #raw_input()
def findfirstline(ls):
    find=0
    for i in range(len(ls)):
        fs=ls[i].split(" ")
        for f in fs:
            if f<>"":
                if f=="No":
                    find=1
                    break
        if find:
            return i
def read(fn):
    ls=open(fn+".txt").readlines()
    #d=ls[15:]
    first=findfirstline(ls)
    d=ls[first:]
    n=len(d)
    num=n/3
    data=[]
    for i in range(num):
        data.append(read3(d,i))
    for d in data:
        print ",".join(d)
convert(fn)
read(fn)


Qt实现网络数据传输

以前写界面主要用Qt做UI,底层的功能是调用别人提供的接口,分工比较明确,但要更好地实现跨平台,则尽量使用Qt内部的接口(当然,也有很多比较强大的库,例如Libcurl)。Qt5自带的网络处理模块Qt...
  • carecool
  • carecool
  • 2014年01月06日 13:19
  • 771

c#句柄相关(往别的程序加自己的内容)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin...
  • solicitous
  • solicitous
  • 2013年08月13日 10:35
  • 1277

C# 实现虚拟打印机 HP Color LaserJet 4500 (1)

C# 实现虚拟打印机 HP Color LaserJet 4500  1 无聊了研究了下PCL和HPGL两种语言。如果要实现虚拟打印机只使用.NET来做,驱动是最大的问题。其实我们可以使用已经写好的打...
  • zgke
  • zgke
  • 2010年05月11日 17:09
  • 9324

c#虚拟打印机

效果图     使用代码 [c-sharp] view plaincopy private Zgke.MyImage.ImageFile.ImageTTF m_TTF = n...
  • bnytqepwq
  • bnytqepwq
  • 2016年06月20日 17:20
  • 836

纯java虚拟打印机

在项目中引入jpd.jar,示例代码如下: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; im...
  • xdocs
  • xdocs
  • 2015年12月05日 23:25
  • 1308

是否需要对网络传输数据进行压缩?如何选择压缩算法?

在网络网络传输过程中,最关心的就是传输效率问题。而提高传输效率最有效的方法就是对传输的数据进行压缩。但压缩数据也要耗费一定的时间,是不是压缩后一定能提高效率呢?该如何选择合适的压缩算法呢?请看本文的具...
  • jmppok
  • jmppok
  • 2014年07月25日 17:20
  • 4158

Qt实现网络数据传输(GET)

.pro文件#-------------------------------------------------## Project created by QtCreator 2016-12-08T1...
  • qq_25600055
  • qq_25600055
  • 2016年12月08日 14:28
  • 1145

Android手机通过wifi进行数据传输(三)

上文接Android手机通过wifi进行数据传输(二)  源码文件2 MyTimerCheck.java package edu.cdut.robin.hotspot; publ...
  • hudashi
  • hudashi
  • 2014年05月08日 10:29
  • 14457

数据传输格式xml/json

写在前面:     现在市面上基于Js的前端框架与服务端交互的数据格式都是json.相比jsp/freemark/velocity之类的页面请求表单方式有了很大的区别。基于Ajax的设计模式在社交网...
  • u011643473
  • u011643473
  • 2014年11月01日 16:44
  • 3342

网络数据传输-局域网内外区别

有点网络常识的都知道,局域网内,数据可以在链路层直接传输,局域网外需要通过路由器转发。但是这两种情况下,目的ip和目的mac地址是否会有区别?如果没有区别,如何通过路由器转发? 通过wireshark...
  • javon_hzw
  • javon_hzw
  • 2015年05月10日 12:54
  • 400
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过虚拟打印机获取其他软件的数据,实现数据传输
举报原因:
原因补充:

(最多只允许输入30个字)