我最近使用FOP编译了一个Android应用程序,因为我想将一些XML转换为PDF文件.但是我不认为FOP JAR文件不适用于Android.有没有适用于Android的FOP版本?或者我可以在我的应用程序中使用的任何其他XML到PDF转换器,而不是连接到Internet上的FOP启用的服务器?
我尝试过包含fop.jar和xmlgraphics.jar,但即使添加到我的项目中,调用也会FopFactory.newInstance()失败.
这是我调用FOP的按钮点击的代码片段:
// Add button listener
btnCreatePDF.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
FopFactory fopFactory = FopFactory.newInstance();
OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("/sdcard/test.pdf")));
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
Source src = new StreamSource(new File("/sdcard/test.fo"));
Result res = new SAXResult(fop.getDefaultHandler());
transformer.transform(src, res);
out.close();
}
});Run Code Online (Sandbox Code Playgroud)
编译器也给了我一堆Dxwarning: Ignoring InnerClasses attribute...错误.单击按钮创建PDF时出现错误:
02-22 14:16:23.641: WARN/System.err(5590): java.lang.UnsupportedOperationException: Don't know how to handle "application/pdf" as an output format. Neither …Run Code Online (Sandbox Code Playgroud) 是否有任何PayPal API可以同时处理多个交易?我正在创建一个网站,客户可能希望从不同供应商处购买多件商品.目前我设置了我的网站购物车将客户重定向到每个供应商的PayPal,但我可以看到这可能会驱使客户离开.我环顾四周,但还没有找到任何关于此的信息.
任何有关教程或API的信息都将不胜感激.
我正在尝试用C创建一个ICMP ping测试程序,但是在成功发送数据包时遇到了困难.该sendto函数返回字节数和所有内容但实际上没有发送数据包.我已经在目标计算机上使用WireShark验证了这一点.主机上的常规ping工作正常,但在WireShark中显示.
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/select.h>
#include <sys/time.h>
unsigned short cksum(unsigned short *addr, int len);
int main(int argc, char *argv[])
{
int sock;
char send_buf[400], recv_buf[400], src_name[256], src_ip[15], dst_ip[15];
struct ip *ip = (struct ip *)send_buf;
struct icmp *icmp = (struct icmp *)(ip + 1);
struct hostent *src_hp, *dst_hp;
struct sockaddr_in src, dst;
struct timeval t;
int …Run Code Online (Sandbox Code Playgroud) 我一直在使用C#中的套接字客户端程序,并且想知道如何检测套接字的另一端何时"不正常"地断开连接,就像拔出网络电缆或硬重置一样.
我在下面有这些函数来访问套接字,根据这里的SO问题和这篇MSDN文章,检查断开连接套接字的最佳方法是发送长度为0的1字节消息.如果抛出异常并且WSAEWOULDBLOCK不是错误代码,然后套接字断开连接.我试过这个但是在硬重置服务器连接后,客户端将调用Send(new byte[1], 0, 0, SocketFlags.None)并成功Receive()返回,之后命令会返回WSAEWOULDBLOCK错误.
是什么赋予了??
这是我下面的代码. _socket设置为非阻塞模式:
private int nonBlockRecv(byte[] recvBytes, int offset, int size, SocketFlags sf)
{
int bytesRecv = 0;
while (true)
{
try
{
nonBlockSend(new byte[1], 0, 0, sf);
bytesRecv = _socket.Receive(recvBytes, offset, size, sf);
break;
}
catch (SocketException excp)
{
if (excp.ErrorCode != 10035) // WSAEWOULDBLOCK
throw excp;
}
}
return bytesRecv;
}
private int nonBlockSend(byte[] sendBytes, int offset, int size, SocketFlags sf)
{
int …Run Code Online (Sandbox Code Playgroud) 我在Android项目中有一段代码,用于创建ParseObject并将其存储在本地数据存储区中.但是,当我在done()回调方法中检查objectId时,pinInBackground()它返回null.如果我切换pinInBackground()到saveInBackground()然后它工作正常,并给出一个有效的objectId.这是代码:
final ParseObject testObject = new ParseObject("TestObject");
testObject.put("foo", "bar2");
testObject.pinInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null) {
Log.e(TAG, "Failed to pin TestObject: " + e.getMessage());
return;
}
Log.d(TAG, "Added key-value pair to TestObject '" + testObject.getObjectId() + "': 'foo' => 'bar2'");
}
Run Code Online (Sandbox Code Playgroud)
});
日志显示:
Added key-value pair to TestObject 'null': 'foo' => 'bar2'
为什么objectId为null?我是否需要设置它,因为它没有保存到云端?
我在我的Android应用程序的应用程序类中放置了以下代码:
// Register ParseObject subclasses
ParseObject.registerSubclass(Results.class);
// Set up Parse
Parse.enableLocalDatastore(MyApplication.this);
Parse.initialize(MyApplication.this, PARSE_APP_KEY, PARSE_CLIENT_KEY);
ParseUser.enableAutomaticUser();
ParseACL defaultACL = new ParseACL();
ParseACL.setDefaultACL(defaultACL, true);
Run Code Online (Sandbox Code Playgroud)
每当我全新安装我的应用程序并创建新的结果对象时,这似乎都很有效.现在,如果我通过Play商店更新我的应用程序,或通过Android Studio安装它,每当创建新的Results对象或任何其他ParseObject或其子类时,我都会收到以下错误:
java.lang.IllegalArgumentException: cannot setReadAccess for a user with null id
Run Code Online (Sandbox Code Playgroud)
这是Parse的错误吗?我使用Offline Todo示例获得了相同的结果.
我在我的C#程序中有一个DataGridView对象,根据打开的过滤器设置,有时会有隐藏的行.我MultiSelect将DGV中的设置设置为True,当单击另一个按钮时,每行的ID将移动到ListBox.但是,我注意到,如果我按下CTRL-A,所有行(包括隐藏的行)也会被移动.我通过将其Visible属性更改为False来隐藏行.
我环顾四周但找不到让CTRL-A命令只选择可见行的解决方案.这可能吗?
谢谢!