小编Wil*_*ill的帖子

Apache POI - Docx输出问题

我正在评估apache poi作为编写docx文件的选项.我正在寻找的具体事情是在docx文件中生成不同语言的内容(hindi/marathi具体).我面临以下问题:

当docx文件被写入时,"Hindi/Marathi"文本显示为方框,即使字体"Arial Unicode MS"支持它.关键是,当我们选中复选框时,MS Word会将字体显示为"Cailbri",即使我已将字体显式设置为"Arial Unicode MS".如果我选择MS Word中的框,然后将字体更改为"Arial Unicode MS",则可以正确显示印地文/马拉地语单词.知道为什么会这样吗?请注意我使用POI的开发版本,因为之前的稳定版本不支持设置字体系列.这是来源:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class CreateDocumentFromScratch 
{

    public static void main(String[] args) 
    {
        XWPFDocument document = new XWPFDocument();

        XWPFParagraph paragraphTwo = document.createParagraph();
        XWPFRun paragraphTwoRunOne = paragraphTwo.createRun();       
        paragraphTwoRunOne.setFontFamily("Arial Unicode MS");
        paragraphTwoRunOne.setText("???????");


        XWPFParagraph paragraphThree = document.createParagraph();
        XWPFRun paragraphThreeRunOne = paragraphThree.createRun();
        paragraphThreeRunOne.setFontFamily("Arial Unicode MS");
        paragraphThreeRunOne.setText("This is nice");

        FileOutputStream outStream = null;
        try {
            outStream = new FileOutputStream("c:/will/First.doc");
        } catch (FileNotFoundException e) {
            e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

java locale encode file apache-poi

6
推荐指数
1
解决办法
1802
查看次数

Python-C api并发问题

我们正在开发一个小型c服务器应用程序 服务器应用程序执行一些数据处理并响应客户端.为了保持数据处理部分的可配置性和灵活性,我们决定使用脚本,并根据各种现成模块的可用性,我们决定使用Python.我们使用Python-C api在c和python之间发送/接收数据.

算法的工作原理如下: -

  1. 服务器从客户端接收一些数据,这些数据存储在c中创建的字典中.使用api函数PyDict_New()创建字典; 来自c.使用api函数PyDict_SetItemString()将输入存储为字典中的键值对;
  2. 接下来,我们执行python脚本PyRun_SimpleString(); 将脚本作为参数传递.该脚本使用c中创建的字典.请注意,我们使用PyImport_AddModule()方法创建在c中创建的字典,脚本可以访问该字典; 和PyModule_AddObject();
  3. 我们将脚本中的数据处理结果作为键值对存储在上面创建的相同字典中.然后,c代码可以在脚本执行后简单地访问结果变量(键值对).

这个问题 ,我们所面临的问题是从不同的客户端进来的并发请求的情况下.当多个请求来自不同的客户端时,我们倾向于对象引用计数异常.请注意,对于为用户提供的每个请求,我们仅为该用户创建一个独立的字典.为了克服这个问题,我们包含了对PyRun_SimpleString()的调用; 在PyEval_AcquireLock()中; 和PyEval_ReleaseLock();,但这样做导致脚本执行是一个阻塞调用.因此,如果脚本需要很长时间才能执行,那么所有其他用户也在等待响应.

能否请您提出最好的方法,或指出我们哪里出错了.请告诉我更多信息.

任何帮助/指导将不胜感激.

c python multithreading thread-safety python-c-api

5
推荐指数
1
解决办法
495
查看次数

如何阻止用户生成更多事件?

我正在开发一个java swing桌面应用程序.对话框表单有一个确定和取消按钮.当用户单击确定按钮时,应用程序会执行一些处理.如何在ok按钮上的事件执行完之前阻止用户再次单击ok.此外,我不希望用户能够按下取消按钮,直到确定完成执行.任何帮助将受到高度赞赏.

java swing desktop-application jsr296

1
推荐指数
1
解决办法
115
查看次数

Groovy:将数组转换为JSon

我是Groovy的新手,无法将数组转换为JSON.计算出的JSON应该具有我的数组列表中的所有值,但它只存储最后一个.这是代码:

def arraylist = [["0",2],["1",8],["2",6],["3",8],["4",3]]

def arraysize = arraylist.size()

def builder = new groovy.json.JsonBuilder()
 builder ({
       cols([
                {
                    "id" "hours"
                    "label" "Hours"
                    "type" "string"
                },
                {
                    "id" "visitor"
                    "label" "Visitors"
                    "type" "number"
                }
           ])

         rows([
                {
                        for( i in 0..< arraysize )
                        {
                        c([
                             {
                                 "v" arraylist[i][0]
                             },
                             {
                                 "v" arraylist[i][1]
                             }
                         ])
                        }//for

                }
           ])
})

println builder.toPrettyString()
Run Code Online (Sandbox Code Playgroud)

可以尝试在这里运行代码:http: //groovyconsole.appspot.com/

预期产出在这里:

{
"cols": [
    {
        "id": "hours",
        "label": "Hours",
        "type": "string"
    },
    {
        "id": "visitor",
        "label": "Visitors", …
Run Code Online (Sandbox Code Playgroud)

grails groovy json

1
推荐指数
1
解决办法
7006
查看次数