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

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

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)


你可能感兴趣的:(python,pdf,虚拟打印机)