小编sai*_*irn的帖子

使用iText,如何使用CssResolver和CssFile将css应用于我的PDF文档?

谢谢你的帮助...

问题

将html表标记/片段(我已转换为字符串)转换为PDF文档时...

我能够 使用这种技术成功地将CSS样式应用于PDF文档......

CSSResolver cssResolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(false);  
cssResolver.addCss("td {border-right: white .1px solid;}", true);
Run Code Online (Sandbox Code Playgroud)

但是,我使用现有的css文件(即使用CssFile对象)将css应用于PDF文档是不成功的,就像这样......

CSSResolver cssResolver = new StyleAttrCSSResolver();
InputStream csspathtest = Thread.currentThread().getContextClassLoader().getResourceAsStream("styles/itextweb.css");            
CssFile cssfiletest = XMLWorkerHelper.getCSS(csspathtest);
cssResolver.addCss(cssfiletest);             
Run Code Online (Sandbox Code Playgroud)

...我无法让这个工作,并且不知道问题是什么......我得到......

Java.io.IOException The document has no pages
Run Code Online (Sandbox Code Playgroud)

题:

如何正确使用CssFile和CssResolver将css样式 - 即从现有的".css"文件 - 应用到我的PDF文档?(我使用iText完成此任务的方式有什么问题?)

(再次感谢您对此的任何帮助/指导)

=================以下是更详细的信息===================

Java 6,JSF(Mojarra)2.1.11,Primefaces v3.4.2,itextpdf v5.3.4,xmlworker v1.2.1

这是有问题的"printPDF"功能......

public void createPDF() throws DocumentException, CssResolverException
{
    FacesContext context = FacesContext.getCurrentInstance();
    ExternalContext econtext = context.getExternalContext();

    try
    {
        String htmlstring   = context.getExternalContext().getRequestParameterMap().get("testForm:htmlstring");

        InputStream is = new …
Run Code Online (Sandbox Code Playgroud)

java itext

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

使用 Apache Camel/Smallrye/reactive 流 - 如何跨 JVM 将“发布者”连接到“订阅者”?

下面是我尝试使用 Apache Camel 反应流解决方案将发布者连接到订阅者(骆驼路由的代码如下所示)跨 JVM 的

为了使通信能够跨越 JVM,似乎需要一个“代理”服务器。因此,我已经实现了 Artemis 代理并相应地修改了 application.properties 文件(根据我对如何这样做的最佳理解)。

此外,为了缩小焦点,选择使用 smallrye-ampq 连接器。

问题:

订阅者应该接收并记录字符串值(来自正文):

-
-
-
:blahblahblah
:blahblahblah
:blahblahblah
-
-
-
Run Code Online (Sandbox Code Playgroud)

--相反,它正在记录值,如下所示:

-
-
-
:Exchange[ID-LAPTOP-4LR4PMVQ-1576639597494-0-289]
:Exchange[ID-LAPTOP-4LR4PMVQ-1576639597494-0-292]
:Exchange[ID-LAPTOP-4LR4PMVQ-1576639597494-0-295]
-
-
-
Run Code Online (Sandbox Code Playgroud)

题:

为什么发布者发送的有效负载没有到达订阅者,我可以修改哪些代码/配置来修复它?

提前感谢您的帮助!

---

“出版商”路线

package aaa.bbb.ccc.jar;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import org.eclipse.microprofile.reactive.messaging.Outgoing;
import org.reactivestreams.Publisher;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.reactive.streams.api.CamelReactiveStreamsService;
import org.apache.camel.component.reactive.streams.api.CamelReactiveStreams;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;

@ApplicationScoped
public class CamelPub extends RouteBuilder {

    @Inject
    CamelContext ctx;

    CamelReactiveStreamsService crss;
    static int x = 0; …
Run Code Online (Sandbox Code Playgroud)

java apache-camel reactive-programming activemq-artemis smallrye

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

如何从dockerized Tomee服务器上运行的应用程序成功连接到Dockerized DB2数据库/服务器 - 使用jdk10的两个容器?

如何从docker化的Tomee服务器上运行的应用程序成功连接到Dockerized DB2 DB服务器 - 两个容器都使用jdk10?

到目前为止我试图做的......

将db2jcc4.jar删入"/ usr/local/tomee/lib"文件夹...

...从...获取:

    https://www-01.ibm.com/support/docview.wss?uid=swg21385217
Run Code Online (Sandbox Code Playgroud)

Fwiw,tomcat服务器的初始启动抱怨它无法找到pdq.jar ...:

    05-Sep-2018 16:48:04.901 INFO [localhost-startStop-1] org.apache.openejb.assembler.classic.Assembler.createApplication Deployed Application(path=C:\tools\apache-tomee-plume-7.0.5\webapps\docs)
    05-Sep-2018 16:48:04.956 WARNING [localhost-startStop-1] org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/C:/tools/apache-tomee-plume-7.0.5/lib/pdq.jar] from classloader hierarchy
    java.io.IOException: java.lang.reflect.InvocationTargetException
            at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:212)
            at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65)
            at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49)
            at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:374)
            at org.apache.tomcat.util.scan.StandardJarScanner.processURLs(StandardJarScanner.java:309)
            at org.apache.tomcat.util.scan.StandardJarScanner.doScanClassPath(StandardJarScanner.java:266)
            at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:229)
            at org.apache.tomee.loader.TomEEJarScanner.scan(TomEEJarScanner.java:69)
            at org.apache.catalina.startup.ContextConfig.processJarsForWebFragments(ContextConfig.java:1888)
            at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1116)
            at org.apache.catalina.startup.OpenEJBContextConfig.webConfig(OpenEJBContextConfig.java:411)
            at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:765)
            at org.apache.catalina.startup.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:124)
            at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
            at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
           at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
            at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1140)
            at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1875)
            at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514)
            at …
Run Code Online (Sandbox Code Playgroud)

java db2 docker java-10

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

为什么我必须在Tiles子页面片段中重新指定taglib注释?(已在我的masterlayout.jsp中指定)

对不起,我不知道如何更好地说出这个问题.

目前,我在主布局中指定了spring mvc"form"taglib注释(以及其他一些注释).

我希望在这个位置指定这些注释将消除在包含此tile定义的其他页面片段中复制相同注释的需要.

但是,它"出现",我的"身体"片段似乎只有在我重新指定那里的注释时才能正常工作.

    e.g., 
    <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    -
    -
    -
Run Code Online (Sandbox Code Playgroud)

"mypage"的tile定义(基于"masterpage")看起来像这样

                 -
                 -
                 -
    <definition name="masterpage" template="/WEB-INF/views/masterlayout.jsp">
        <put-attribute name="title" value="" type="string"/>
        <put-attribute name="header" value="" />
        <put-attribute name="leftside" value="" />
        <put-attribute name="rightside" value="" />
        <put-attribute name="footer" value="" />
    </definition>   

    <definition name="mypage" extends="masterpage">
        <put-attribute name="title" value="My Page Title" type="string"/>
        <put-attribute name="header" value="/WEB-INF/views/header.jsp" />  
        <put-attribute name="leftside" value="/WEB-INF/views/leftside.jsp" />        
        <put-attribute name="rightside" value="/WEB-INF/views/rightside.jsp"/>
        <put-attribute name="footer" value="/WEB-INF/views/footer.jsp" />                        
    </definition>
                 -
                 -
                 -
Run Code Online (Sandbox Code Playgroud)

这是masterlayout.jsp的样子

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <%@taglib …
Run Code Online (Sandbox Code Playgroud)

java jsp tiles spring-mvc

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

为什么"重定向"(即"返回"重定向:/ myPage"`)不能用于我的Tiles页面定义?

为什么我的"重定向"(即return "redirect:/myPage")不起作用?

注意:"myPage"是Tiles页面定义.

(FWIW,我所遇到的"双重提交"问题的解决方案是使用重定向到"myPage".但我无法让"重定向"工作.)

到目前为止,我已尝试过以下内容.

return new ModelAndView("redirect:/myPage"))
return new ModelAndView("redirect:/myPage.jsp"))

return new ModelAndView("redirect:/views/myPage"))
return new ModelAndView("redirect:/views/myPage.jsp"))

return new ModelAndView(new RedirectView("myPage"))
return new ModelAndView(new RedirectView("myPage.jsp"))

return new ModelAndView(new RedirectView("/views/myPage"))
return new ModelAndView(new RedirectView("/views/myPage.jsp"))

return new ModelAndView(new RedirectView("/WEB-INF/views/myPage"))
return new ModelAndView(new RedirectView("/WEB-INF/views/myPage.jsp"))
Run Code Online (Sandbox Code Playgroud)

但是,无济于事.以上网址都不会重定向工作.也就是说,我得到HTTP状态404 - [描述,请求的资源不可用].

(注意:主布局模板和构成"myPage"页面定义的JSP文件位于"WEB-INF/views"文件夹中.)

以下是一些相关的配置信息.

什么可能阻止我重定向到Tiles页面定义:"myPage"?


applicationContext.xml中

    <?xml version="1.0" encoding="UTF-8"?>
    <beans:beans xmlns="http://www.springframework.org/schema/mvc"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:beans="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

        <context:component-scan base-package="aaa.bbb.ccc" />
        <context:annotation-config />
        <mvc:annotation-driven/>
        <resources mapping="/resources/**" …
Run Code Online (Sandbox Code Playgroud)

java jsp tiles

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

如何将"keydown"事件绑定到jqgrid单元格?

题:

我可以将"keydown"事件绑定到jqgrid单元格吗?

(最终,帖子/问题的目的是解决可访问性问题.)

问题描述:

场景:

用户使用箭头键遍历网格的单元格,并在特定单元格上停止.
注意:他可以在jqgrid单元格之间使用"箭头键"导航,因为jqgrid"cellEdit"参数设置为true(即cellEdit: true).他现在按下了<enter>他已停下来的牢房的钥匙.

我想要的是<enter>在jqgrid单元格上捕获生成的keydown/keyup事件,并对其执行某些操作.

- 到目前为止,我完成此任务的尝试都没有奏效.

FWIW - 产生我的帖子的原始问题: 如果<button>用户决定停在其中的单元格内部(即,当他们使用箭头键导航网格时),如果用户然后按下了该键单元格/按钮,什么都不会发生.

(注意:我已经知道,如果你碰到<tab><button>单元格,你会发现按钮是聚焦的,你可以 <enter> 按键来点击它.但是,随后的 <enter> 按下操作失败了.)

- 因此,我决定,作为一种解决方法,如果我至少可以捕获keydown事件,那么,我可能能够在按钮上触发点击事件 - 以实现我所需要的.

谢谢你的帮助!

(如果我需要进一步澄清或提供其他信息,请告诉我)

现在,我的jqgrid列模型定义如下:

    -
    -
    -
    colNames: ['', 'city', 'postal code', 'VIEW'],
    colModel: [
        {name: 'id', label: "id", index: 'id', width: 100, hidden: true},
        {
            name: 'cityName', 
            label: "cityName", 
            index: 'cityName', 
            width: 100, 
            sortable: true,
            cellattr: function(){return 'tabindex="0"'}
        },
        {
            name: 'postalCode', 
            label: …
Run Code Online (Sandbox Code Playgroud)

jquery jqgrid

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