嗨,我正在寻找一个开源Java API,可以将tiff图像转换为可搜索的pdf(OCR).我有研究但到目前为止没有发现任何东西.
注意 我已经查看了这篇文章,但是这个API没有将图像转换为pdf Java OCR实现.但是,我仍在使用代码.
我知道如何使用Primefaces或使用Tomahawk进行文件上传,但是,我正在尝试使用Apache Commons FileUpload进行文件上传,到目前为止,我有一些路障.即使我的表单使用multipart/form-data,当我提交表单时,内容类型也会变为application/x-www-form-urlencoded.这是我的代码
<h:body>
<h:form enctype="multipart/form-data">
Upload File
<input type="file" name="file"/>
<p:commandButton value="Submit" action="#{viewBean.submit}"/>
</h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)
这是我的 ViewBean
@ManagedBean
@ViewScoped
public class ViewBean implements Serializable {
public void submit() {
String url = "/FileUploadServlet";
FacesContext context = FacesContext.getCurrentInstance();
try {
String contentType = context.getExternalContext().getRequestContentType();
context.getExternalContext().dispatch(url);
} catch (Exception e) {
logger.log(Level.SEVERE, "Exception when calling Servlet", e);
} finally {
context.responseComplete();
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试打印上面的内容类型时,它显示出来了application/x-www-form-urlencoded.如果我把它放到ajax="false"我的p:commandButton,那么该submit()方法甚至没有被调用,但如果我取出enctype="multipart/form-data"(仍然保持ajax="false"),然后 …
这是一个独立的 Java 应用程序,而不是 Web 应用程序。所以当我像这样持久化对象时
public <T> T create(T t) {
em.getTransaction().begin();
em.persist(t);
em.flush();
em.getTransaction().commit();
return t;
}
Run Code Online (Sandbox Code Playgroud)
该id内部T t对象仍然为空,即使新行正确的数据,ID是数据库中正确创建。通常在我的 web 应用程序中@EJB,id在我持久化后立即可用,因为它将实体对象持久化到我的持久化上下文中,我不确定这里是否有我的持久化上下文?
这就是我在 @Entity 类中映射我的 id 的方式
@Id
@Basic(optional = false)
@Column(name = "ID")
private Long id;
Run Code Online (Sandbox Code Playgroud)
我也在数据库中制作了这张表的id AUTO_INCREMENT,就像这样
CREATE TABLE Config
(
ID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID)
)
Run Code Online (Sandbox Code Playgroud)
这就是我获取 EntityManager 的方式
EntityManagerFactory emf = Persistence.createEntityManagerFactory("CorePU");
em = emf.createEntityManager();
Run Code Online (Sandbox Code Playgroud)
这是我的内部 persistence.xml
<persistence-unit name="CorePU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.wf.docsys.core.model.Config</class>
<properties>
<property …Run Code Online (Sandbox Code Playgroud) h:selectOneRadio的布局可以是水平的也可以是垂直的,所以有一种方法可以做一些自定义布局.例如,不是显示8个单选按钮,而是将它们显示为2行,每行4个?请在PrimeFaces p:selectOneRadio解决方案旁边提供答案,它使用CSS3导致IE8显示矩形形状的单选按钮.
我使用(https://github.com/browserstate/history.js)并有一段这样的代码
History.Adapter.bind(window, 'statechange', function() {
var State = History.getState();
alert('Inside History.Adapter.bind: ' + State.data.myData);
});
function manageHistory(url, data, uniqueId){
var History = window.History;
if ( !History.enabled ) { return false; }
History.replaceState({myData: data}, null, '?stateHistory=' + uniqueId);
}
Run Code Online (Sandbox Code Playgroud)
如果我在调用manageHistory()ajax之后调用,则会History.Adapter.bind正确调用回调方法.但是,如果我单击浏览器然后单击前进按钮导致页面导航从B到A,然后A返回到B,History.Adapter.bind则不会调用内部的回调方法.这种情况发生在chrome和IE9上.任何人都知道如何解决这个问题,我需要先State点击浏览器然后转发,以更新我的DOM.请帮忙
注意:我使用版本1.7.1 jquery.history.js用于html4浏览器IE9
更新(2013年5月3日):更多地谈谈我的要求
对不起,我正忙着处理其他任务,直到现在我才有时间看这个问题.因此oncomplete,在ajax调用中,我将这些信息返回给我,并将其推送到状态.我的要求是:如果我从页面A导航到页面B,然后在页面B,我执行导致DOM操作的ajax请求的数量(让我们调用导致DOM操作的每个ajax请求state).如果我单击后退按钮,我应该返回到页面A,如果我单击前进按钮,我应该转到页面B,其中包含我所处的最后状态.
所以我的想法是,oncomplete在我的ajax请求中,我将用我当前的状态替换历史中的最后一个状态(我的json对象是我从ajax请求收到的html).如果我使用推送状态,请说我在页面B上,然后单击一个按钮,我的页面现在更改为aaa,我pushState aaa.然后如果我点击其他按钮,我的页面现在改为bbb,我pushState bbb.如果我现在单击后退按钮,我仍然会在页面B,我的状态History.Adapter.bind(window, 'statechange', function() {})显示为aaa,如果我再次单击后退按钮,我会转到页面A.我不想要这种行为.我希望如果我在页面B上有状态bbb,然后单击返回,我会转到第A页,如果我单击向前,我会转到页面B的状态 …
view1 = [[View1 alloc] init]; //Create the first view
UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:view1];
navigationController1.navigationBar.tintColor =[UIColor blackColor];
Run Code Online (Sandbox Code Playgroud)
View1继承自UIViewController.所以我创建了一个*view1,然后我创建了一个UINavigationController,调用*navigationController1.我如何将两者联系在一起?非常感谢你
我想计算当前目录中的文件数以及加载数组中的所有文件名.如果可能,我想知道如何过滤文件扩展名
我得到了和OneToMany之间的关系UserGroup
Group.java
@Entity
public class Group {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String groupid;
@ManyToOne
@JoinColumn(name="USER_FK")
private User user;
...
}
Run Code Online (Sandbox Code Playgroud)
User.java
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String userId;
private String password;
private String fname;
private String lname;
@OneToMany(mappedBy="user", cascade=CascadeType.ALL)
private List<Group> groups;
public void addGroup(Group group){
if(this.groups == null){
this.groups = new ArrayList<Group>();
}
this.groups.add(group);
group.setUser(this);
}
}
Run Code Online (Sandbox Code Playgroud)
所以当我试图坚持这个对象时
User user = em.find(User.class, 1L); …Run Code Online (Sandbox Code Playgroud) 我有一个命令按钮,它将调用一个函数来下载文件(标准内容,例如InputStream,BufferedOutputStream...) 下载成功后,在函数末尾,我更改当前对象的一些值并将其保存到数据库中。所有这些都可以正常工作。现在,当文件下载完成时,页面内容不会更新。我必须点击刷新才能看到更新的内容。请帮忙。以下是我的代码的基本结构
document:托管 Bean
getDrawings():方法返回绘图(实体类)列表
CheckedOutBy:实体的属性Drawing
<p:dataTable id="drawing_table" value="#{document.drawings}" var="item" >
<p:column>
<f:facet name="header">
<h:outputText value="CheckedOutBy"/>
</f:facet>
<h:outputText value="#{item.checkedOutBy}"/>
...
</p:dataTable>
<p:commandButton ajax="false" action="#{document.Download}" value="Download" />
Run Code Online (Sandbox Code Playgroud)
在我的托管 Bean 中
public void Download(){
Drawing drawing = getCurrentDrawing();
//Download drawing
drawing.setCheckedOutBy("Some Text");
sBean.merge(drawing); //Update "Some Text" into CheckedOutBy field
}
Run Code Online (Sandbox Code Playgroud) EDIT
Cant似乎可以rendered正常使用update属性.这是我的代码
<ui:define name="left">
<h:form>
<p:commandLink value="Hey"
actionListener="#{bean.setRenderComment}"
update="comment"/>
</h:form>
</ui:define>
<ui:define name="right">
<h:panelGroup id="comment" rendered="#{bean.renderComment}">
hello
</h:panelGroup>
</ui:define>
Run Code Online (Sandbox Code Playgroud)
renderComment是一个布尔属性bean.setRenderComment基本状态切换的renderComment这样
this.renderComment = !this.renderComment;
Run Code Online (Sandbox Code Playgroud)
是的,每次我点击链接时Hey,我都需要刷新以hello开启或关闭渲染.我该如何解决它,以便我不需要刷新
java ×5
jsf ×4
jpa ×2
jquery ×2
primefaces ×2
c++ ×1
css ×1
directory ×1
eclipselink ×1
file ×1
file-upload ×1
filenames ×1
foreign-keys ×1
history.js ×1
html ×1
iphone ×1
java-ee ×1
javascript ×1
jsf-2 ×1
macos ×1
ocr ×1
orm ×1
pdf ×1
persistence ×1
pushstate ×1
refresh ×1
tiff ×1
uiview ×1