iText页面包装 – 改变元素的顺序

当我遇到这个问题时,我正在使用iText生成PDF报告,并编写了一个简单的例子来说明它。 我正在组合简单的段落和图像。 图像的高度使得3适合PDF页面,但是当文本在页面上时,只有2个图像适合。 我使用以下代码创建PDF: Document document = new Document(PageSize.LETTER, 0, 0, 0, 0); PdfWriter writer = PdfWriter.getInstance(document, fileOutput); document.open(); document.add(new Paragraph(“hello world1”)); addImage(document); addImage(document); addImage(document); document.add(new Paragraph(“hello world2”)); document.close(); 我希望输出看起来像这样 hello world1 image image image hello world2 相反,我得到的是, Hello world 1 image image hello world 2 image 我没有使用iText设置任何奇怪的包装参数,这个例子真的很简单。 关于为什么它似乎是自动包装这个错误的任何想法? 在实际情况中,仅添加分页符不是可接受的解决方案。 非常感谢。

Bump API Android崩溃

Android上的bump API存在很大问题。 我在示例中设置了所有内容,第一次开始我的活动包含它工作得很好的凹凸代码,现在如果我回去再次启动它会因为致命信号错误而崩溃…它发生在我打电话后bump API的配置。 我可以不再打电话了吗? 但是没有什么可以检查它是否已经配置。 public class BumpActivity extends Activity { private IBumpAPI api; private ProgressDialog mDialog; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.bump); mDialog = ProgressDialog.show(BumpActivity.this, “Preparing bump”, “Loading”); bindService(new Intent(IBumpAPI.class.getName()), connection, Context.BIND_AUTO_CREATE); IntentFilter filter = new IntentFilter(); filter.addAction(BumpAPIIntents.CHANNEL_CONFIRMED); filter.addAction(BumpAPIIntents.DATA_RECEIVED); filter.addAction(BumpAPIIntents.NOT_MATCHED); filter.addAction(BumpAPIIntents.MATCHED); filter.addAction(BumpAPIIntents.CONNECTED); registerReceiver(receiver, filter); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); […]

迭代枚举枚举

我有一个类似的结构 public class EnumTest{ enum fauna { Animals, Birds; enum Animals { Tiger(“tiger”), Lion(“lion”); String name; Animals(String name) { this.name = name; } } enum Birds { Peacock(“peacock”), owl(“Owl”); String name; Birds(String name) { this.name = name; } } } } 现在我找不到一种方法来迭代enum动物群来打印枚举动物和鸟类的名字。 有什么办法吗?

Mockito有没有办法从内部类中运行一个间谍对象的存根方法?

我正在使用Mockito为其他人实现的代码编写junit测试。 简化: 有一个外类和一个内部类 Outer类保留Inner类的实例。 Inner类使用Outer类的方法。 简化的代码可能如下所示: public class Outer { private Inner inner; public Outer(){ inner=new Inner(); } public Inner getInner(){ return inner; } public String getOuterName(){ return “outer”; } public String getOuterNiceName(){ return “name=”+getOuterName(); } public class Inner { public String getInnerName(){ return getOuterName()+”-inner”; } } } 我想将Outer类的方法getOuterName()存根,以返回一个方便我测试的值。 要做到这一点,我正在“窥探”对象: Outer outer=new Outer(); Outer spyOuter=spy(outer); […]

使用Gson 2.3.1反序列化包含不在Java中工作的接口的Json String

我试图反序列化包含接口类型的接口和hashmaps的json字符串以及使用Gson将包含接口类型的列表放入java对象中。 但我得到了 java.lang.RuntimeException:无法为com.abc.Dummy接口调用no-args构造函数。 使用Gson为此类型注册InstanceCreator可以解决此问题。 我试图通过实例化构造函数来为实例创建者注册类型适配器,以实现具有虚拟值的类,但是虚拟值不会被反序列化的值覆盖? Dummy是接口,SubClassDummy是实现类。 public class DummyInstanceCreator implements InstanceCreator{ @Override public SubClassDummy createInstance(Type type) { return new SubClassDummy(“”, 2.5, “abc”); } } String data = // some json string with interfaces and List, hashmap gsonBuilder.registerTypeAdapter(Dummy.class, new DummyInstanceCreator()); SubClassDummy context = gson.fromJson(data, SubClassDummy.class); 任何人都可以帮助解决这个问题吗? 我无法修改我试图反序列化的java对象。 它是第三方课程 。 因此无法添加任何注释或对该类进行任何修改。 如何让gson用反序列化值覆盖虚拟值? 我甚至无法对java对象如何序列化为json字符串进行任何更改。 我只是将json字符串用于将其反序列化为特定的java对象。

使用xuggler从一组图像创建video

我一直在寻找解决方案! 在这个网站和其他人。 我发现了一些有趣的东西,但它们并没有解决我的问题。 我会解释一下。 我有一个video,我用xuggler为它绘制每一帧。 当我得到所有帧时,我用颜色算法编辑所有帧。 另外,我将音频存储在mp3文件中。 现在我需要从所有帧创建一个video,当然,这个video应该具有与帧速率e持续时间相同的特性。 之后我必须合并音频。 我已经完成了第一部分,但我不知道如何创建具有相同特征的video。 我关注此代码: http://www.javacodegeeks.com/2011/02/xuggler-tutorial-frames-capture-video.html 无法使用Xuggler对video进行编码 但它需要快照,它使用一个奇怪的循环: for (int index = 0; index < SECONDS_TO_RUN_FOR * FRAME_RATE; index++) 我无法弄清楚如何设置正确的特性。 它应该很简单,因为我了解video的一切! 大小,帧速率和帧数。 我的代码: public static void main(String[] args) throws IOException { final IMediaWriter writer = ToolFactory.makeWriter(outputFilename); writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_MPEG4, 720, 304); long nextFrameTime = 0; final long frameRate =25/1000; […]

没有当前背景的opengl es api

我已经查看了解决方案并且没有真正找到解决方案。 我收到此错误,因为它似乎执行发生在gl线程之外。 但是我不知道如何解决这个问题。 代码如下: public shape() { super(); vertexShader = Shader.loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode); //<============ fragmentShader = Shader.loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode); ByteBuffer buffer = ByteBuffer.allocateDirect(getCoordinates().length * 4); buffer.order(ByteOrder.nativeOrder()); vertexBuffer = buffer.asFloatBuffer(); vertexBuffer.put(getCoordinates()); vertexBuffer.position(0); ByteBuffer drawListBuffer = ByteBuffer.allocateDirect(getOrderOfDraw().length * 2); drawListBuffer.order(ByteOrder.nativeOrder()); listBuffer = drawListBuffer.asShortBuffer(); listBuffer.put(getOrderOfDraw()); listBuffer.position(0); mProgram = GLES20.glCreateProgram(); // create empty OpenGL Program GLES20.glAttachShader(mProgram, vertexShader); // add the vertex […]

JSF:绝对需要将昂贵的业务逻辑放在访问器方法中。 如何避免称这个昂贵的BL倍数时间

这是我的困境,我知道在JSF中访问器方法会多次调用,因此我知道不要在访问器方法中放置昂贵的业务逻辑(如DB访问)。 如果我必须将业务逻辑放入我的访问器中该怎么办? 在这种情况下我该怎么办? 以下是我的困境的高层次布局。 (Mojarra 2.1,GF 3.1) #{item1.name} says: #{item1.comment} #{item2.name} replies: #{item2.comment} @ManagedBean @ViewScoped public void myBean(){ private List comments; @EJB private MyEJB myEJB; @PostConstruct public void init(){ comments = myEJB.getAllComments(); } //getters and setters for List comments public List handleReplies(Comment comment){ //Return a List of replies of the comment return myEJB.getRepliesFromComment(comment); } } […]

是否可以在Intellij Idea中更改junit4 test的默认类名模板?

我们的测试类有一个名称约定: 对于unit testing:TestMyCoolClazz 对于集成测试:ITestMyCoolClazz 但每当Intellij Idea提示“创建测试”对话框窗口时,类名始终为MyCoolClazzTest。 所以基本上它在类和名称上添加了一个单词’Test’。 那可以改变它吗?

在JasperReports中避免不必要的分页符

使用jasper api打印结果集时,我遇到了一个问题。 说明: 报告格式: GroupA(GroupHeader) SubGroupName(SubGroup Header) ….Data(Detail Section)….. 条件: 如果我的子组标题或GroupHeader看起来位于页面底部,我想插入分页符,以便下一页显示标题部分和数据。 示例: 实际产量: GroupA(GroupHeader) SubGroupName(SubGroup Header) ….Data(Detail Section)….. 预期产出: 我想避免不必要的Pagebreak.so我的输出看起来像, GroupA(GroupHeader) SubGroupName(SubGroup Header) ….Data(Detail Section)….. 我的JRXML文件: <![CDATA[new Boolean($V{AccountSubGroupName_COUNT}.intValue()