精华内容
下载资源
问答
  • windows环境和linux环境下word文档转换为pdf文档 组件:word文档转换成pdflinux环境下的转换1.安装环境2.操作说明windows环境下的转换1.环境安装2.服务器上安装office3.服务器开启组件服务权限备注 ) 组件:word...


    )

    linux环境下的转换

    1.安装环境

    当前,我们采用docker技术,创建一个container来模拟服务器(linux + nginx + mysql + php)环境,
    具体配置情况我已经把他打包成镜像包,大家可以随意使用,镜像名称在下面的docker-compose.yml文件中,
    流程步骤如下:

    • 创建docker-compose.yml文件,写入以下配置内容:
    version: "3"
    services:
      nginx:
        image: myxxqy/nginx:1.0
        ports:
          - "${NGINX_HTTP_HOST_PORT}:80"
        volumes:
          - ${SOURCE_DIR}:/var/wwwroot/:rw
          - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw
          - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro
          - ${NGINX_LOG_DIR}:/var/log/nginx/:rw
        restart: always
        networks:
          - default
      php72:
        image: myxxqy/php:1.0
        volumes:
          - ${SOURCE_DIR}:/var/wwwroot/:rw
          - ${PHP72_PHP_CONF_FILE}:/usr/local/etc/php/php.ini:ro
          - ${PHP72_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw
          - $PWD/fonts/:/usr/share/fonts
        restart: always
        cap_add:
          - SYS_PTRACE
        networks:
          - default
      mysql:
        image: myxxqy/mysql:1.0
        ports:
          - "${MYSQL_HOST_PORT}:3306"
        volumes:
          - ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro
          - ${MYSQL_DATA_DIR}:/var/lib/mysql/:rw
        restart: always
        networks:
          - default
        environment:
          MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
    networks:
      default:
    
    
    • 打开命令行,进入到当前目录,执行docker-composer up -d
    • 服务启动成功,打开浏览器输入localhost/index.html进入demo页面
      如图所示:

    2.操作说明

    在linux环境下转换word文件采用的是开源软件libreOffice和小工具unoconv来实现的,主要的命令如下:

    unoconv -f pdf -o your_pdf_path  your_word_path
    

    至于中文乱码问题,这里把windows系统字体文件夹里所有的文件全部放在fonts文件夹里面,挂载到环境的/usr/share/fonts目录里即可自动转换。
    – (*注意)这里fonts文件夹占用空间太大,请自行寻找fonts资源,放进去。

    windows环境下的转换

    1.环境安装

    目前采用的是windows server 2012R2 的服务器,采用的是apache + php + mysql的环境,
    具体配置过程这里就不介绍了,这里讲下开启php的dcom扩展:

    • 打开php配置文件php.ini,搜索php_com_dotnet
    • 找到extension=php_com_dotnet.dll,把前面的分号去掉
    • 找到com.allow_dcom = true,把等号后面的值改成true
    • 最后重启apache服务

    2.服务器上安装office

    因为项目中需要使用PHPOffice/PHPWord把文档中的变量转成需要的值,而这个库只支持docx
    所以word的版本不能低于word2007,具体安装和激活office的过程这里我就不多说了,自己百度或google去。

    3.服务器开启组件服务权限

    具体转换的代码如下:

    $word = new \COM("Word.Application") or die ("Could not initialise Object.");
    $word->Documents->Open($this->createFile);
    $word->ActiveDocument->ExportAsFixedFormat($this->createPdfFile, 17, false, 1, 0, 0, 0, 0, false, false, 0, false, false, false);
    $word->Quit(false);
    

    如果没有开启组件服务权限的话,使用COM扩展的话会报类似下面这样的错误:

    Can't open Word doc with COM in PHP
    

    这样我们需要开启组件服务相关的权限:

    • ctrl + R打开运行。
    • 输入mmc -32,然后回车,打开控制台1。
    • 点击文件-添加或删除管理单元,然后在左侧找到组件服务,点击添加,然后点击确定。
    • 然后在控制台1的界面就会看到控制台根节点下面有了组件服务,然后依次点击计算机-我的电脑-DCOM配置
    • 在里面找到Microsoft Office Word 97-2003,这里才是重点,右键属性
    • 常规的身份验证级别里面选择,然后在位置属性里面选择在数据所在的计算机运行应用程序(D)
    • 安全里面,把启动和激活权限访问权限配置权限都设置成自定义,在里面都添加Everyone用户,权限都勾上。
    • 标识属性里面(注意,这里最重要!!)选择下列用户,把远程登录的账户和密码写进去,然后点击应用确定,如图:

      然后运用业务代码,你会发现php的代码调用了系统组件服务的功能,打开了word文档,然后调用了微软的word文档相关接口进行另存为pdf。

    原创地址

    代码地址:https://github.com/zclucky/wordtopdf

    喜欢的顺便start下,谢谢,如有疑问,请联系作者:myxxqy@gmail.com

    展开全文
  • 乱码原因是因为linux系统没有中文字体,所以转换的时候乱码,需要我们手动把window系统的字体文件拷贝到linux系统的字体目录。 window系统的字体目录位置C:\Windows\fonts 拷贝出所有的ttc和ttf格式的文件放...

    乱码原因是因为在linux系统下没有中文字体,所以转换的时候乱码,需要我们手动把window系统的字体文件拷贝到linux系统下的字体目录下。

    window系统的字体目录位置C:\Windows\fonts
    拷贝出所有的ttc和ttf格式的文件放到新建文件夹windows中,将该文件夹打成压缩包window.zip,扔到linux服务器的任意目录上。
    在这里插入图片描述
    在linux下安装解压zip的工具

    yum install -y unzip zip
    

    然后将该压缩包解压到字体目录中

    unzip window.zip /usr/share/fonts/
    

    安装字体命令

    fc-cache -fv
    

    然后重启一下服务器就好啦

    展开全文
  • 这是pdfLinux上显示的问题,都是方格,开始以为是乱码问题,后来查了一下,说是Linux上没加载到中文字体,于是按照网上说的将C:\Windows\Fonts这个字体包拷到Linux的字体包,刷新了一下服务器,感觉还是没气...

    jar包之前使用的是 aspose-words-18.6.0-jdk16.jar
    这是pdf在Linux上显示的问题,都是方格,开始以为是乱码问题,后来查了一下,说是在Linux上没加载到中文字体,然后把用到的字体包从windows的C:\Windows\Fonts里找出来,复制到linux的/usr/share/fonts/windows-fonts下然后就是其他博客的那些,刷新字体# fc-cache。不生效重启服务器 # reboot。,刷新了一下服务器,感觉还是没起效果,于是,又开始查找,终于找到一个,说可能是没有读到字体,于是:
    这是package com.shineyoo.common.utils.wordtopdf;

    import com.aspose.words.Document;
    import com.aspose.words.FontSettings;
    import com.aspose.words.License;
    import com.aspose.words.SaveFormat;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileOutputStream;

    public class Doc2PdfUtil {
    private static Logger logger = LoggerFactory.getLogger(Doc2PdfUtil.class);

    /**
     * doc转pdf
     *
     * @param docPath doc文件路径,包含.doc
     * @param pdfPath pdf文件路径,包含.pdf
     * @return
     */
    public static File doc2Pdf(String docPath, String pdfPath) {
        System.out.println("pdfPath = "+pdfPath);
        System.out.println("pdfPath = "+pdfPath);
        File pdfFile = new File(pdfPath);
        //判断是否windows系统,Linux要读取字体,否则pdf字体为方格
        if(!OSinfo.isWindows()){
        //这是重点
            **FontSettings.getDefaultInstance().setFontsFolder(File.separator + "usr"
                    + File.separator + "share" + File.separator + "fonts" +File.separator + "Fonts", true);**
        }
        try {
            String s = "<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data><Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature></License>";
            ByteArrayInputStream is = new ByteArrayInputStream(s.getBytes());
            License license = new License();
            license.setLicense(is);
            Document document = new Document(docPath);
            FileOutputStream fileOutputStream = new FileOutputStream(pdfFile);
            System.out.println("pdf文件:"+fileOutputStream);
            document.save(fileOutputStream, SaveFormat.PDF);
        } catch (Exception e) {
            logger.info("****aspose doc转pdf异常");
            e.printStackTrace();
        }
        return pdfFile;
    }
    

    }

    将FontSettings.getDefaultInstance().setFontsFolder(File.separator + “usr”
    + File.separator + “share” + File.separator + “fonts” +File.separator + “Fonts”, true);这段放到读取文件之前,就可以了,怎么样,很简单吧!

    展开全文
  • python中可以运行    我部署上tomcat后发现运行不了,输出看是哪里出了问题  只输出了 1, 2和3没有输出,说明  stop = [line.strip() for line in open('stopwords.txt', encoding='gbk').readlines()...

    在python中可以运行

     

     我部署上tomcat后发现运行不了,输出下看是在哪里出了问题

     只输出了 1, 2和3没有输出,说明 

    stop = [line.strip() for line in open('stopwords.txt', encoding='gbk').readlines()] 出了问题 ,这次代码主要就是读取stopwords.txt里的内容,所以可能是这里出了问题,但是python里能运行,上了服务器就不行,我想了下应该是路径出了问题,stopwords.txt在tomcat里的路径是E:\DeveloperKits\apache-tomcat-8.0.53\webapps\jobAnalysis\WEB-INF\classes

     

     我把路径设置为tomcat下的路径

     

     

    再运行发现可以了

     

     

    import jieba
    import jieba.analyse
    import matplotlib.pyplot as plt
    from pandas import pandas as pd
    from pymongo import MongoClient
    from  pyecharts import WordCloud
    import os
    #jieba.initialize()
    
    #上线后的路径
    env_dist = os.environ
    tomcatpath = env_dist.get('CATALINA_HOME')#环境变量
    #停用词路径
    stop_txt_path = tomcatpath + os.path.sep + 'webapps' +os.path.sep+ 'jobAnalysis' +os.path.sep+ 'WEB-INF'+os.path.sep+'classes'+os.path.sep
    #文件保存路径
    tomcatpath = tomcatpath + os.path.sep + 'webapps' +os.path.sep+ 'jobAnalysis' +os.path.sep+ 'results' +os.path.sep
    print(tomcatpath)
    print(stop_txt_path)
    
    
    
    '''
     数据清洗
     '''
    def dataFilter( df ):
    
        del df["_id"]
    
        #剔除实习岗位
        df.drop(df[df['positionName'].str.contains('实习')].index,inplace=True)
        avgSalarys=[]
        for s in df['salary']:
            if s.find('以上')>=0:
                avgSalary = int(s[0:s.index('k')] + "000")
            else:
                arrs = s.split("-")
                highSalary = 0
                lowStr = arrs[0]  #  15k-20k   arrs[0]表示 - 前面的 15k
                lowSalary = int(lowStr[0:lowStr.find("k")] + "000")
    
                highStr = arrs[1]
                highSalary=int(highStr[0:highStr.find("k")]+"000")
                avgSalary=(highSalary+lowSalary)/2
    
            avgSalarys.append(avgSalary)
        df['salary'] = avgSalarys
        return  df
    
    
    '''
    绘制薪资直方图
    '''
    def showPlot_hist(city, position, citypinying, df):
    
    
        # 全局设置中文
        plt.rcParams['font.sans-serif'] = ['SimHei']
        plt.rcParams['axes.unicode_minus'] = False
    
        plt.hist(df['salary'])
        plt.xlabel('salary')
        plt.ylabel('num')
        plt.title(citypinying+'_'+position+'_salary hist')
        plt.savefig(tomcatpath + citypinying+'_'+position+'_salary.jpg')
        plt.close()
        print('salary success')
    
    
    
    '''
    地区分布饼图
    '''
    def showPlot_pie(city,position,citypinying,df):
    
        from pyecharts import Pie
        pie = Pie(city+'招聘'+position+'岗位公司分布情况分析',title_pos='bottom',width=800)
        districts={}
        for item in df['district']:
            if item in districts:
                districts[item]=districts[item]+1
            else:
                districts[item]=1
        pie.add('公司分布',districts.keys(),districts.values(),center=[25,50],is_random=True,radius=[30,75],rosetype='radius')
        pie.render(tomcatpath + citypinying+"_"+position+"_pie.html")
        print('districts success')
    
    
    
    '''
    学历要求
    '''
    def showPlot_bar(city,position,citypinying,df):
    
        dicts ={}
        for i in df['education']:
            if i not in dicts:
                dicts[i]=0
            else:
                dicts[i]+=1
        index = list(dicts.keys())
        num=[]
        for i in index:
            num.append(dicts[i])
            #overlap 多图叠加
        from pyecharts import Bar
        bar = Bar('学历要求')
        bar.add('学历要求',index,num,mark_line=['min','max'])
        bar.render(tomcatpath + citypinying+'_'+position+'_bar.html')
        print('education success')
    
    
    
    '''
    福利待遇词云
    '''
    def showWordCloud(city,position,citypinying,df):
        text =''
        for line in df['positionAdvantage']:
            text += line+'\n'
    
        print('1')
        stop = [line.strip() for line in open(stop_txt_path+'stopwords.txt','r',encoding='gbk').readlines()]
        print('2')
        cut_text = jieba.cut(text)
    
        # 去掉无意的词
        l=[]
        for ct in cut_text:
            if ct not in stop:
                l.append(ct)
        cut_text=l
    
        # 统计出现次数
        dicts ={}
        for i in cut_text:
            if i not in dicts:
                dicts[i]=1
            else:
                dicts[i]+=1
        index = list(dicts.keys())
        num = []
        for i in index:
            num.append(dicts[i])
        word_cloud = WordCloud(width=1700,height=1000)
        word_cloud.add('',index,num,word_size_range=[15,200],shape='cardioid')
        word_cloud.render(tomcatpath + citypinying+'_'+position+'_wordcloud.html')
        print('wordcloud success')
    
    
    
    '''
    从mongoz中读取数据
    '''
    def readMongoData(position,citypinying):
    
        client = MongoClient('127.0.0.1',27017)
        db = client['lagou']
        collection = db[citypinying+"_"+position]
        results = collection.find()
        data = pd.DataFrame(list(results))
        return data
    
    
    import sys
    if __name__=="__main__":
        city="上海"
        position = "python"
        citypinying = "shanghai"
    
        if len(sys.argv)>2:
            city=sys.argv[1]
            position=sys.argv[2]
            citypinying=sys.argv[3]
    
        df = readMongoData(position,citypinying)
        df = dataFilter(df)
        showPlot_hist(city, position, citypinying, df)
        showPlot_pie(city, position, citypinying, df)
        showPlot_bar(city, position, citypinying, df)
        showWordCloud(city, position, citypinying, df)

     

    展开全文
  • Windows系统使用维基百科中文语料训练word2vec词向量 By 龙前尘 实验环境:win8、python 2.7 转载请注明地址: http://blog.csdn.net/svenhuayuncheng/article/details/78751311 笔者按 笔者近期用简单问...
  • 安装些基本软件,自行找教程,记得配置下环境变量 安装python2 安装jdk node、yarn (https://blog.csdn.net/bule_zst/article/details/78157361) 模拟器Genymotion传送门 安装android studio ...
  • Java中文分词组件 - word分词

    万次阅读 2019-02-10 16:17:50
    word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。能通过...
  • 闲话少说,笔者搭建完sphinx后,因为中文分词的原因总觉得美中不足,于是千方百计的找到了coreseek的win32安装包。 安装包地址 下载后解压到相应目录,我这里安装的是F:/coreseek。so下面凡是涉及到路径的...
  • 有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看) +-------+------+ |abc |xyz=tt| +-------+------+ |hellomm|t2 | +-------+------+ 本题目要求设计一个程序,把用户输入的内容用...
  • 如何配置php运行环境

    万次阅读 2016-05-27 00:19:30
    出现这个的时候点击我画全的地方就可以选择安装的目录了,同样选择的是server下面的mysql目录,然后再接下来的步骤之中都选择第一个就行,至于为什么我暂时也是是很清楚,等到了 我建议选择第三个,老师说选的...
  • python3环境下汉字转拼音

    千次阅读 2017-10-27 21:59:52
    上述代码适合python2.7的代码,但是对于python3.5的环境却不是很友好,所以将代码改成python3.5环境下可以运行的代码,代码如下: # -*- coding:utf-8 -*- """ Author:cleverdeng E-mail:clverdeng@gmail
  • 该段代码如果想要Linux服务器上完美运行,需要给Linux服务器安装中文字体库 使用com.aspose.words将word模板转为PDF文件时,开发平台window转换没有问题,中文也不会出现乱码。但是将服务部署正式服务器...
  • windows10 训练word2vec 中文语料

    千次阅读 2016-03-03 16:01:02
    windows10 环境 训练word2vec 中文语料 参考这篇文章,但有自己体会概述 本人是NLP中的菜鸟,喜欢这个领域,自己论文打算做...先了解一下word2vec,是google2013年提出的开源项目,是一个Deep Learning模型,它将ter
  • word2vec词向量训练及中文文本相似度计算

    万次阅读 多人点赞 2016-02-18 00:35:41
    本文是讲述如何使用word2vec的...Word2vec是Google公司2013年开放的一款用于训练词向量的软件工具。它根据给定的语料库,通过优化后的训练模型快速有效的将一个词语表达成向量形式,其核心架构包括CBOW和Skip-gram。
  • IE用JavaScript将HTML导出为Word、Pdf

    万次阅读 热门讨论 2012-12-17 21:54:01
    最近升级公司内部系统发文章的功能,涉及到将文章内容导出为html、word、pdf,系统多用于IE环境下,并且公司电脑都预装了office,所以导出暂时采用客户端的方式。  页面基本结构: 客户端导出测试 ...
  • 中文维基百科语料上的Word2Vec实验

    万次阅读 热门讨论 2017-02-22 12:10:42
    此文主要参考52nlp-中英文维基...这里,为了方便大家可以更快地运行gensim中的word2vec模型,我提供了wiki.zh.text.model与wiki.zh.text.vector的下载链接,http://download.csdn.net/detail/yangyangrenren/9859895
  • word技巧

    千次阅读 2018-03-01 21:40:22
    62、WORD中文字字号与磅的对应关系... 63、字体文件格式... 7B、文本编辑... 71、快速移动文档... 72、快速传递文档... 83、删除空行... 84、多处剪切,一处粘贴... 85、文字块的快速、重复录入方法... 96、Word...
  • 老流程 先加载运行环境 (*运行环境*) JLink`InstallJava[]; JLink`AddToClassPath[NotebookDirectory[]&lt;&gt;"word-1.3.jar"]; JLink`LoadJavaClass["org.apdplat.word.WordSegmenter&...
  • 使用中文维基百科进行Word2Vec实验

    千次阅读 2017-10-13 16:07:08
    1. 环境及语料 1.1 环境 Homebrew Python jieba分词库 gensim库 1.2 下载维基百科语料 从这个链接下载... 本文只使用中文WiKi进行Word2Vec实验,英文的Wiki比较好...
  • Word 转手写体

    千次阅读 多人点赞 2020-06-20 13:07:43
    文章目录介绍与准备Tkinter 指南开发环境Word 转手写体代码主程序背景图像字体下载与设置主程序啦!!代码测试与结果链接 Word 文档从 Word 文档获取输入的代码新建一个 Word 测试文档代码调试代码运行准备GUI 设计...
  • 一、环境: win10+anaconda3+TensorFlow1.10 二、数据: 下载中文维基百科语料数据:wiki_data_1.4g 三、word2vec步骤: 1. 将xml的wiki数据转换成text数据 先将zhwiki-latest-pages-articles.xml.bz2文件复制...
  • 最近要写毕业论文,但是之前的小论文是用latex写的,又不想用引用的方式插入参考文献,于是查了一下发现可以在word中插入bib格式的参考文献,就是需要配置一下。下面简单介绍一下,只记录简单的步骤,不做过于具体的...
  • 环境说明:本人使用的是MacBook+python3.5 首先,安装NLP工具包gensim,这里直接有word2vec 终端输入下面指令: pip install -- upgrade gensim 其次,安装中文分词工具包jieba 终端输入下面指令: pip ...
  • NLPIR介绍NLPIR是中科院出的一款汉语分词系统(又名ICTCLAS2013),主要功能包括中文分词;词性标注;命名实体识别;用户词典功能;支持GBK编码、UTF8编码、BIG5编码。工程lib目录win32、win64、linux32、linux
  • 前言自然语言处理有很多方法,最近很流行的是谷歌开源项目word2vec,详见谷歌官网:官网链接。其主要理论由Tomas Mikolov大神团队的2篇论文组成:Efficient Estimation of Word Representations in Vector Space, ...
  • 场景: 使用Aspose.Wordword文档转换成pdf。 本地Windows开发环境,pdf文件正常。 但是将程序部署到CentOS的... 添加日志输出,发现读取出来的Word纯文本内容,中文也还是正常的,那么就只剩最后转pdf的原因了...
  • Windows使用Word2vec继续词向量训练

    万次阅读 多人点赞 2015-02-04 22:05:39
    word2vec是Google2013年提出的一款开源工具,其是一个Deep Learning(深度学习)模型(实际上该模型层次较浅,严格上还不能算是深层模型,如果word2vec上层再套一层与具体应用相关的输出层,如Softmax,便更像是一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,502
精华内容 14,200
关键字:

中文word可以在什么环境下运行