小编Ter*_*ran的帖子

使用 Apache-POI 获取 docx 的每个段落的行

我正在为我的应用程序使用库 Apache-POI。具体来说,POIshadow-all (ver. 3.17) 用于阅读 Word 文档。我成功地提取了每个段落,如下所示:

在此处输入图片说明

我真正需要的是提取每一,如下所示:

在此处输入图片说明

提取每个段落的代码是这样的:

 try {

            val fis = FileInputStream(path.path + "/" + document)
            val xdoc = XWPFDocument(OPCPackage.open(fis))

            val paragraphList: MutableList<XWPFParagraph> = xdoc.paragraphs

            private val newParagraph = paragraph.createRun()

                ...

            for (par in paragraphList) {

                    var currentParagraph = par.text
                    Log.i("TAG","current: $currentParagraph")

                        ...
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,变量 currentParagraph 返回整个段落。但是,我需要一个名为 currentLine 的变量,它返回一行。

我在 stackoverflow 和其他网站上研究过这个问题。我找到了一些建议,但没有一个适合我。我还尝试通过 ctr 和使用 XWPFRun 获取日期,但没有成功。

对于如何进行的任何建议,我将不胜感激。

在此先感谢您的帮助。

java android docx apache-poi kotlin

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

在JavaFX中将3D对象鼠标拖动移动限制到一个平面

我正在使用JavaFX通过鼠标拖动来移动3D立方体。立方体应停留在x和z轴所跨的平面上。我的解决方案效果很好,但是,如果我用鼠标将多维数据集移动得太快,或者当它遇到具有特定深度(y轴)的对象时,则假定鼠标在y轴和多维数据集上移动开始向前或向后跳跃。有没有一种方法可以将鼠标限制在xz平面上?一个更复杂的解决方案是将y长度投影回xz平面,但是我不知道该怎么做。我看了看JavaFX Moving 3D Objects,但是无法适应我的情况。

到目前为止,我的代码:

    private volatile double relMousePosX;
    private volatile double relMousePosZ;

    public void enableDragMove(PaneBox paneBox) {
        Group paneBoxGroup = paneBox.get();

        paneBoxGroup.setOnMousePressed((MouseEvent me) -> {
            if(isSelected(paneBox) && MouseButton.PRIMARY.equals(me.getButton())) {
                relMousePosX = me.getX();
                relMousePosZ = me.getZ();
            }
        });

        paneBoxGroup.setOnMouseDragged((MouseEvent me) -> {
            if(paneBoxGroup.focusedProperty().get() && MouseButton.PRIMARY.equals(me.getButton())) {
                setDragInProgress(paneBox, true);
                System.out.println(me.getY()); // should stay small value, but jumps to higher values at times, creating the problem.
                paneBoxGroup.setCursor(Cursor.MOVE);
                paneBox.setTranslateX(paneBox.getTranslateX() + (me.getX() - relMousePosX));
                paneBox.setTranslateZ(paneBox.getTranslateZ() + (me.getZ() - relMousePosZ));
            }
        });

        paneBoxGroup.setOnMouseReleased((MouseEvent …
Run Code Online (Sandbox Code Playgroud)

3d axis javafx drag javafx-3d

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

JavaFX 2D文本与3D场景中的背景

对于我的项目,我需要3D场景中的2D文本(而不是叠加!).所以我尝试在场景中添加BorderPanewith Label/ Textnodes:

在此输入图像描述

然而问题是,当我用相机放大,缩小或飞行时,面板的白色背景有时与标签重叠(它们显然具有相同的深度).

有没有办法从其面板"提升"标签?我试过设置setDepthTest(true);没有效果.

这是一个显示问题的简单示例.该Xform课程来自Oracle的分子样本(http://docs.oracle.com/javase/8/javafx/graphics-tutorial/sampleapp3d-code.htm#CJAGGIFG):

package mypackage;

import mypackage.Xform;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SceneAntialiasing;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Example  extends Application {

    private Stage primaryStage;
    private final Group root = new Group();

    @Override
    public void start(Stage primaryStage) throws Exception {
        this.primaryStage = primaryStage;
        primaryStage.setTitle("Example");
        this.primaryStage.setWidth(500);
        this.primaryStage.setHeight(500);

        Scene scene = new Scene(this.root, 500, 500, true, SceneAntialiasing.BALANCED);
        scene.setFill(Color.WHITESMOKE);

        Text text …
Run Code Online (Sandbox Code Playgroud)

java 3d 2d javafx javafx-3d

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

标签 统计

3d ×2

java ×2

javafx ×2

javafx-3d ×2

2d ×1

android ×1

apache-poi ×1

axis ×1

docx ×1

drag ×1

kotlin ×1