0

ドキュメントの総ページ数を返す以下のコードがあります。これを javascript soapplet.getNumberOfPages() で呼び出すことができます

PageNumber だけを返す同様のメソッドを実行したいと考えています。このクラス com.sun.star.text.TextField.PageNumber を見つけましたが、PageNumber の文字列を返す方法がわかりません。JavaScript では、特定の文字列のドキュメントを検索できます。文字列が見つかった場所に応じて、文字列が存在するドキュメントのページ番号を特定できます。次に、このページを先頭の用紙トレイから印刷するようにプリンタに指示できます。1日か2日グーグルで検索しましたが、何も見つかりません。ありがとう

public int getNumberOfPages()
{
    XController xController = OODocument.getCurrentDocument().getXFrame().getController();

    XTextViewCursorSupplier supTextViewCursor =
                (XTextViewCursorSupplier) UnoRuntime.queryInterface(
                    XTextViewCursorSupplier.class, xController);

    XTextViewCursor curTextView = supTextViewCursor.getViewCursor();
    XPageCursor curPage =
                (XPageCursor) UnoRuntime.queryInterface(
                    XPageCursor.class, curTextView);
    curPage.jumpToLastPage();
    System.out.println("pages = " + curPage.getPage());
    return curPage.getPage();
}

私は今これを再考しており、JavaScriptで文字列を見つけて、その文字列がオンになっているページ番号を返すことができるかどうか疑問に思っています。私が持っているコードは次のとおりです。

if(printOnPlainPaper == true)    {

            if(soApplet.isConnected())  
            {
                soDoc = soDoc + soApplet.getEncodedHtmlDocument( null );
                if(soDoc.indexOf("zzzzz"))  
                {                                       
                    alert("trueeeee");
                }
                else 
                {
                    soApplet.printDocument(PLAIN_PAPER, "1-");    // print page 1 to plain paper printer
                }
            }
        //soApplet.printDocument(PLAIN_PAPER, "1-");    // print page 1 to plain paper printer
    }

文字列を見つけることができますが、ページ番号を教えてもらうにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

誰かがそれを必要とする場合に備えて、私はそれを解決しました。以下のコードはドキュメントを検索し、文字列を見つけてその上のページ番号を返します

public int searchPageNumber()
{
    XController xController = OODocument.getCurrentDocument().getXFrame().getController();

    XTextViewCursorSupplier supTextViewCursor =
                (XTextViewCursorSupplier) UnoRuntime.queryInterface(
                    XTextViewCursorSupplier.class, xController);

    XTextViewCursor curTextView = supTextViewCursor.getViewCursor();

    // gets the page cursor and assigns the text view cursor to the page
    XPageCursor curPage =
                (XPageCursor) UnoRuntime.queryInterface(
                    XPageCursor.class, curTextView);
    System.out.println("The current page number is " + curPage.getPage());

    // gets the model
    XModel model = xController.getModel();
    // assigns model to the document
    XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, model);
    // Xsearchable so we can search the text
    XSearchable xSearchable = (XSearchable) UnoRuntime.queryInterface(XSearchable.class, xTextDocument); 
    XSearchDescriptor xsd = (XSearchDescriptor) xSearchable.createSearchDescriptor(); 

    xsd.setSearchString("zzzzz");

    XInterface xfi = (XInterface) xSearchable.findFirst(xsd); 
    if (xfi != null) { 
        XTextRange xStart = (com.sun.star.text.XTextRange) UnoRuntime.queryInterface( 
                com.sun.star.text.XTextRange.class, xfi); 

        curTextView.gotoRange(xStart, false); 
    } 

    System.out.println("current page = " + curPage.getPage());
    return curPage.getPage();
}
于 2012-10-15T09:03:38.333 に答える