小编vsi*_*ngh的帖子

如何使用PDFBox从HTML创建PDF文件?

我正在尝试从HTML内容创建PDF.

public byte[] generatePdf(final XhtmlPDFGenerationRequest request) {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PDDocument document = new PDDocument();
    InputStream stream = new ByteArrayInputStream(request.getContent()
            .getBytes());

    PDStream pdstream = new PDStream(document, stream);
    document.save(baos);
    document.close();
    return this.toByteArray(baos);

}
Run Code Online (Sandbox Code Playgroud)

当我拿这个byte[]并保存到文件时,该文件是空白的.我PDStream用来将输入流嵌入到文档中

来自http://pdfbox.apache.org/apidocs/

public PDStream(PDDocument doc,
                InputStream str)
         throws IOException
Run Code Online (Sandbox Code Playgroud)

从输入流中读取所有数据并将其嵌入到文档中,这将关闭InputStream.

java pdf pdfbox

13
推荐指数
2
解决办法
5万
查看次数

Spring Cron调度程序“禁用模式”

我的应用程序从属性文件加载了一些cron模式。我使用这样的@Scheduled注释:

@Scheduled(cron = "${config.cronExpression:0 0 11,23 * * *}")

现在我想禁用一些任务,最简单的解决方案是输入永远不会运行的cron模式。为此,我考虑过使用仅在过去特定日期执行的cron表达式。但不幸的是,Spring cron表达式不允许在过去添加年份或日期。

有没有永远不会运行的模式?

cron spring scheduled-tasks

10
推荐指数
3
解决办法
4959
查看次数

CPU 被固定 - java.util.zip.ZStreamRef 问题

我们在生产中看到了这个间歇性问题。CPU 随机固定在 50%(2 核 CPU),并且永远不会回来。唯一的选择是重新启动服务器。\n这就是 Dynatrace 中 CPU 的显示方式

\n\n

在此输入图像描述\n这就是我们通过 dynatrace 分析时线程转储的样子。

\n\n

在此输入图像描述

\n\n

Apache tomcat 线程卡住

\n\n

通过我的研究,似乎存在 jdk 缺陷

\n\n
Calling \'java.util.zip.Deflater.finish()\' prematurely hangs the application. \nThe application is spinning consuming one cpu\n
Run Code Online (Sandbox Code Playgroud)\n\n

https://bugs.openjdk.java.net/browse/JDK-8060193

\n\n

仅当涉及某些多个过滤器时才会随机发生。

\n\n

我能够在具有 JDK“1.8.0_201”的 CentOs 虚拟机上使用上述 jira 中的测试类来重现此问题\n这令人惊讶,因为根据文档和票证,此问题已得到修复。

\n\n

经过进一步研究,发现jdk中再次打开了类似的缺陷。

\n\n

https://bugs.openjdk.java.net/browse/JDK-8193682

\n\n

现在团队不愿意继续研究它,除非有人可以重现它。\n由于它是在生产中随机发生的,我不确定如何重现它。https://bugs.openjdk.java.net/browse/JDK-8060193中的测试类仍然存在问题。这是否是一个有效的测试用例?\n如果这是有效的,那么每次我们发送压缩数据时都会出现问题。

\n\n
    \n
  • 我们的运行时JRE是Jdk 1.8
  • \n
  • 压缩是在 tomcat 上进行的,而不是在负载均衡器上进行的。
  • \n
\n\n

关于为什么会发生这种情况以及我们如何解决这个问题有任何指示吗?

\n\n

更新:\n在我们正在使用的库之一中,它抛出异常\n格式错误的 UTF-8 字符(意外的非连续字节 0x00,紧接在起始字节 0xfd 之后)

\n\n

LastName, First\xe2\x80\x99Name\n正如我们所见,这不是一个常规的撇号。我们可以通过从 word 中复制粘贴来实现这一点,它会自动将常规撇号更正为这个时髦的字符。

\n\n

我们的重现器确实抛出了一个错误,但 CPU 并没有卡住。我认为这是在高流量和流量的情况下发生的。 …

java cpu

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

如何在Java中同时与1000个套接字进行通信?

这是问题描述我们有数千台设备(大约4k-5k),我们必须每2分钟或30秒连续读取数据.每个设备都有其独特的IP.将收集此数据,然后将其存储在数据库中.这些设备位于全国各地的100个位置.数据不会24X7读取,但至少12小时.

有一个Web应用程序可以在某个时刻请求显示通过这些设备收集数据的数据.我们知道正在请求设备的数据.

这就是我们认为我们可以用Java实现的方式

解决方案A:在每个位置,指定一台将充当服务器的计算机,并从x个设备读取数据.此数据将每1小时推送到中央服务器.在这个指定的机器上,数据被拉出并存储在本地(平面文件或内存数据库)

在这种情况下,我们将拥有与位置数量一样多的服务器.例如,我们可能最终拥有1500台服务器/机器管理,这成为一场噩梦.

解决方案B:

我们有8-10个中央服务器,每个服务器从一堆机器中读取数据.数据排队并按照它到达的顺序被拾取.

服务器将数据推送到数据库.

客户如何获取数据

在解决方案B中,客户端从数据库获取它,假设数据已被推送到数据库并且仍然没有排队.

您认为应该做得更好?

任何替代设计/解决方案?

我们应该考虑使用Unix/Perl在服务器上进行编程.出于某些其他原因,我们不想使用C++.

java sockets

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

iText pdf在使用NOTO字体或Source Hans时不显示中文字符

我正在尝试使用NOTO字体(https://www.google.com/get/noto/)来显示中文字符.这是我的示例代码,来自iText的修改示例代码.

public void createPdf(String filename) throws IOException, DocumentException {

    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(filename));
    document.open();

    //This is simple English Font
    FontFactory.register("c:/temp/fonts/NotoSerif-Bold.ttf", "my_nato_font");
    Font myBoldFont = FontFactory.getFont("my_nato_font");
    BaseFont bf = myBoldFont.getBaseFont();
    document.add(new Paragraph(bf.getPostscriptFontName(), myBoldFont));


    //This is Chinese font


    //Option 1 :
    Font myAdobeTypekit = FontFactory.getFont("SourceHanSansSC-Regular", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

    //Option 2 :
     /*FontFactory.register("C:/temp/AdobeFonts/source-han-sans-1.001R/OTF/SimplifiedChinese/SourceHanSansSC-Regular.otf", "my_hans_font");
     Font myAdobeTypekit = FontFactory.getFont("my_hans_font", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);*/



    document.add(Chunk.NEWLINE);
    document.add(new Paragraph("??", myAdobeTypekit));
    document.add(Chunk.NEWLINE);

    //simplified chinese
    document.add(new Paragraph("???????", myAdobeTypekit));
    document.add(Chunk.NEWLINE);

    document.add(new Paragraph("??", myAdobeTypekit));
    document.add(new Paragraph("The Source Han …
Run Code Online (Sandbox Code Playgroud)

java pdf itext

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

JSF应用程序中的可标记URL - 尝试使用Spring Webflow和JSF.有什么建议?

我们的应用程序是JSF,hibernate和Spring.目前网址格式如下 http://www.skill-guru.com/skill/login/testDetails.faces?testId=62&testName=PMP-Certification-practice-test

我们想要一个像http://www.skill-guru.com/urltitle?some参数这样的干净网址

我们可以通过与JSF集成Spring webflow来实现这一目标.

还有其他建议吗?

我们正在尝试使用JSF 2.0的Spring webflow 1.0,但这似乎不起作用.

jsf friendly-url spring-webflow

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

谷歌搜索中网站下方的链接

当我在谷歌搜索亚马逊等网站时,我看到了亚马逊的链接和描述。在主链接下方,我还看到一些较小的链接,如书籍、音乐、DVD 等。我们如何为我们自己的网站获取这些链接?这些是站点地图吗?

google-search

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

如果我们在itext中使用ttf文件,是否需要拥有字体许可证?

据我所知,itext没有任何字体库,你需要提供字体库.pdf一旦生成,将由Acrobat查看,并假设它是标准字体,adobe将支持它.我的问题是关于字体的许可.

a)我是否需要获得我在iText中使用的字体的许可证?例如,如果我使用Arial,最常用的字体之一并且不是免费的,我是否需要购买字体?

b)如果我使用任何特定字体,例如STSONG.ttf,对于中文字符,我是否需要获得此许可证?

fonts licensing itext font-embedding

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