Jump to content

Search the Community

Showing results for tags 'libreoffice'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Member Title


Location


WWW


Interests

Found 4 results

  1. Greetings all, While I am working with various projects along the way I often hit a reoccurring frustration of needing to know if I spelled a comment or string correctly, and have often needed to copy my word into a document to spellcheck it and then correct as needed, which feels much like a waste of time. I have finally decided to solve my problem by utilizing Libre Office. After running across a post by GMK, demonstrating his Spell Checker script, I thought I would make my own version. And now that I have this working satisfactorily, I thought I would share it in case others are sitting in a similar spot as I was. Note: this add-on is not recommended for those new to modifying their Scite User Properties, or are unaware of where their App Data Scite installation is. This utilizes the Libre Office spell checking engine for use in Scite4Autoit so you can check the spelling of words on the fly using a shortcut combo, and offering suggestions if the word is misspelled. This Add-on also allows you to spellcheck an entire script or a selected range's Strings, Comments, and comment blocks for misspelled words, marking them for review. The Script Spell checker skips words with the following in them: . $ # @ _ : / \ I have added the ability to spell check in other, and/or multiple, languages, though I am limited to my ability to test this, English being my only language. Requirements: Full installation of Scite4AutoIt LibreOffice (Installed version only, portable will not work.) Desired Spell Checking language installed in Libre Office. Installation To "Install" this Add-On for Scite4AutoIt, do the following. Navigate to %LocalAppData%\Local\AutoIt v3\SciTE (You can copy and paste this into Start search box and push enter) Copy the "Scite4AutoIt_LO_SpellChecker" folder into this directory. Do one of the following, depending on if you already have custom lua scripts present in PersonalTools.lua or not. If you do not have custom scripts present in PersonalTools.lua, find in this same directory the file PersonalTools.lua, and rename it to PersonalTools.lua.old Copy the PersonalTools.lua file from the Add-On folder to the %LocalAppData%\Local\AutoIt v3\SciTE directory. If you do have custom scripts present in PersonalTools.lua, Open the PersonalTools.lua file in the Add-On folder and copy everything in the file below the following entry, ------------------------------------------------------------------------------- -- required line ... do not remove PersonalTools = EventClass:new(Common) ------------------------------------------------------------------------------- Paste the contents into the end of the PersonalTools.lua file found in the %LocalAppData%\Local\AutoIt v3\SciTE directory. Open your SciTEUser.properties file, (go to Scite editor and Select "Options" in the toolbar, Select "Open User Options File".) Copy and paste the following into the SciTEUser.properties File. (If you have previous custom Lua Scripts, you may need to modify the command numbering.) #~ Single Word Spell-Check lua Script command.name.45.$(au3)=Sp-Check Current Word command.mode.45.$(au3)=subsystem:lua,savebefore:no command.shortcut.45.$(au3)=Ctrl+Shift+F command.45.$(au3)=InvokeTool PersonalTools.SingleWordCheck #~ #~ Entire Script Spell-Check lua Script command.name.46.$(au3)=Sp-Check Entire Script command.mode.46.$(au3)=subsystem:lua,savebefore:no command.shortcut.46.$(au3)=Ctrl+Shift+G command.46.$(au3)=InvokeTool PersonalTools.CheckScript #~ #~ Clear Spell Checking Marking lua Script command.name.47.$(au3)=Sp-Check Clear command.mode.47.$(au3)=subsystem:lua,savebefore:no command.shortcut.47.$(au3)=Ctrl+Shift+H command.47.$(au3)=InvokeTool PersonalTools.ClearSpChk #~ *You may modify any Shortcut key combinations as necessary.* Restart Scite Ignored Words You can add words to ignore in the file "Scite4AutoIt_LO_IgnoredWords.ini" that you placed in "%LocalAppData%\Local\AutoIt v3\SciTE\Scite4AutoIt_LO_SpellChecker". ONLY one word per line. No lone punctuation characters please. Words are Case Sensitive. Properties - You may set the following properties by pasting the property values in your "User Options" File (from Scite's toolbar go to, Options->Open User Options File), and modifying the value after "=" ###Language and Country### S4A.SpellCheck.Language=en S4A.SpellCheck.Country=US Language code must be a LOWER CASE two or three character ISO 639 Language Code. You can find a list of these codes online, such as https://iso639-3.sil.org/code_tables/639/data Country code must be an UPPER CASE two character ISO 3166 Country Code. You can find a list of these codes online, such as https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 YOU MUST HAVE the desired Language installed in Libre Office already for this to work. Default is Language: en, Country: US Also accepts multiple value pairs separated by a semicolon, such as: S4A.SpellCheck.Language=en;pl S4A.SpellCheck.Country=US;PL Pairs must be equal between Language and Country. And each column must be a valid Language and Country pair. i.e. (en US), (pl PL). The first language/country pair listed is considered your primary language and any words will be checked by it first. Duplicate suggestions are automatically removed, when multiple languages are used. ###Misspelled Word Highlighting### S4A.SpellCheck.Highlight=0xFF00FF Modify the misspelled word highlighting. Must be 8 characters long, and contain only a-f, x, and 0-9 and begin with 0x. Highlighting color code is Hex color code of B(lue) G(reen) R(ed) (Not RGB). One way you can obtain this value is by using the value given from the example script provided with AutoIt function _ChooseColor, and selecting the BGR button. Default is 0xFF00FF ###Maximum Suggestions### S4A.SpellCheck.MaxSuggestions=10 Set the maximum words returned per language/country pairs. Must contain only digits, and be greater than 0. Default is 10. ###Markers Off### S4A.SpellCheck.UseMarkers=y - Set to "n" (no quotes) to skip adding a marker in the left hand margin of Scite on each line containing a spelling error. Notes This function uses the following Styles for Scite functions. UserList Type: 18 Indicator Style: 10 Marker Number: 18 This has been developed using the Scite4AutoIt Beta Version 5, currently being developed by Jos, I tried it in the standard Scite4A release V. 4 and it seems to function properly, except, in the standard Scite release a cmd window appears for a second or two. I seem to be unable to get around this. However it does not appear in the beta release. I would be happy to hear any suggestions, though I can’t promise prompt help or replies, but will do what I can. I am currently still working on another project, so anything done to this will be sporadic and delayed. v0.1.1 Scite4AutoIt_LibreOffice_SpellChecker.zip
  2. I decided to enhance the functionality of the OOo COM UDF found >here and >here. Thanks to Leagnus and Andy G for providing the initial functions and framework. This UDF includes the following working functions: _OOoCalc_BookNew _OOoCalc_BookOpen _OOoCalc_BookAttach _OOoCalc_BookSave _OOoCalc_BookSaveAs _OOoCalc_BookClose _OOoCalc_WriteCell _OOoCalc_WriteFormula _OOoCalc_WriteFromArray _OOoCalc_HyperlinkInsert _OOoCalc_RangeMoveOrCopy _OOoCalc_RangeSort _OOoCalc_RangeClearContents _OOoCalc_CreateBorders _OOoCalc_NumberFormat _OOoCalc_ReadCell _OOoCalc_ReadSheetToArray _OOoCalc_RowDelete _OOoCalc_ColumnDelete _OOoCalc_RowInsert _OOoCalc_ColumnInsert _OOoCalc_SheetAddNew _OOoCalc_SheetDelete _OOoCalc_SheetNameGet _OOoCalc_SheetNameSet _OOoCalc_SheetList _OOoCalc_SheetActivate _OOoCalc_SheetSetVisibility _OOoCalc_SheetMove _OOoCalc_SheetPrint _OOoCalc_HorizontalAlignSet _OOoCalc_FontSetProperties _OOoCalc_CellSetColors _OOoCalc_RowSetColors _OOoCalc_ColumnSetColors _OOoCalc_RowSetProperties _OOoCalc_ColumnSetProperties _OOoCalc_FindInRange _OOoCalc_ReplaceInRange Please help me test this and let me know of any problems, questions, suggestions or comments you may have. Edit (August 5, 2016): Latest files have been uploaded. Script-breaking changes include renaming the functions to start with _OOoCalc_. Edit (November 14, 2016): New version, including fixed sort function! Edit (November 15, 2016): Lots of minor changes including tightening up the error checking. Edit (November 16, 2016): Added ByRef to object parameters. Edited demo. OOoCalcConstants.au3 OOoCalc.au3 OOoCalc_Demo.au3
  3. LibreOffice UDF. Authors: @donnyh13 @mLipok Description: This User-Defined-Function is intended to give the ability to automate many aspects of the Libre Office API/SDK through AutoIt. So far this UDF offers functionality for controlling LibreOffice Writer, including Writing and Reading text, inserting Tables, writing and reading table content, inserting and modifying Frames, Headers and Footers, Foot/EndNotes, Fields, Images, and Shapes. You can also modify, create, delete, and set, Paragraph, Character, Numbering and Page Styles, and directly format text. As well a Find and replace, and much in between. Releases: While I will attempt to keep this post up to date with the latest releases. You can (and should) always check the below GitHub link, you will find the latest modified "Beta" files as well as the last releases there/ You will also find more in-depth details on what's new. GitHub: https://github.com/mlipok/Au3LibreOffice Latest Release: https://github.com/mlipok/Au3LibreOffice/releases/latest Current Support: Presently this UDF supports the following LibreOffice components: Writer Current Function List: ##LibreOfficeWriter## ; _LOWriter_SearchDescriptorCreate ; _LOWriter_SearchDescriptorModify ; _LOWriter_SearchDescriptorSimilarityModify ##LibreOfficeWriter_Cell## ; _LOWriter_CellBackColor ; _LOWriter_CellBorderColor ; _LOWriter_CellBorderPadding ; _LOWriter_CellBorderStyle ; _LOWriter_CellBorderWidth ; _LOWriter_CellCreateTextCursor ; _LOWriter_CellFormula ; _LOWriter_CellGetDataType ; _LOWriter_CellGetError ; _LOWriter_CellGetName ; _LOWriter_CellProtect ; _LOWriter_CellString ; _LOWriter_CellValue ; _LOWriter_CellVertOrient ##LibreOfficeWriter_Char## ; _LOWriter_CharStyleBorderColor ; _LOWriter_CharStyleBorderPadding ; _LOWriter_CharStyleBorderStyle ; _LOWriter_CharStyleBorderWidth ; _LOWriter_CharStyleCreate ; _LOWriter_CharStyleDelete ; _LOWriter_CharStyleEffect ; _LOWriter_CharStyleExists ; _LOWriter_CharStyleFont ; _LOWriter_CharStyleFontColor ; _LOWriter_CharStyleGetObj ; _LOWriter_CharStyleOrganizer ; _LOWriter_CharStyleOverLine ; _LOWriter_CharStylePosition ; _LOWriter_CharStyleRotateScale ; _LOWriter_CharStyleSet ; _LOWriter_CharStylesGetNames ; _LOWriter_CharStyleShadow ; _LOWriter_CharStyleSpacing ; _LOWriter_CharStyleStrikeOut ; _LOWriter_CharStyleUnderLine ##LibreOfficeWriter_Cursor## ; _LOWriter_CursorGetDataType ; _LOWriter_CursorGetStatus ; _LOWriter_CursorGetType ; _LOWriter_CursorGoToRange ; _LOWriter_CursorMove ##LibreOfficeWriter_DirectFormating## ; _LOWriter_DirFrmtCharBorderColor ; _LOWriter_DirFrmtCharBorderPadding ; _LOWriter_DirFrmtCharBorderStyle ; _LOWriter_DirFrmtCharBorderWidth ; _LOWriter_DirFrmtCharEffect ; _LOWriter_DirFrmtCharPosition ; _LOWriter_DirFrmtCharRotateScale ; _LOWriter_DirFrmtCharShadow ; _LOWriter_DirFrmtCharSpacing ; _LOWriter_DirFrmtClear ; _LOWriter_DirFrmtFont ; _LOWriter_DirFrmtFontColor ; _LOWriter_DirFrmtGetCurStyles ; _LOWriter_DirFrmtOverLine ; _LOWriter_DirFrmtParAlignment ; _LOWriter_DirFrmtParBackColor ; _LOWriter_DirFrmtParBorderColor ; _LOWriter_DirFrmtParBorderPadding ; _LOWriter_DirFrmtParBorderStyle ; _LOWriter_DirFrmtParBorderWidth ; _LOWriter_DirFrmtParDropCaps ; _LOWriter_DirFrmtParHyphenation ; _LOWriter_DirFrmtParIndent ; _LOWriter_DirFrmtParOutLineAndList ; _LOWriter_DirFrmtParPageBreak ; _LOWriter_DirFrmtParShadow ; _LOWriter_DirFrmtParSpace ; _LOWriter_DirFrmtParTabStopCreate ; _LOWriter_DirFrmtParTabStopDelete ; _LOWriter_DirFrmtParTabStopList ; _LOWriter_DirFrmtParTabStopMod ; _LOWriter_DirFrmtParTxtFlowOpt ; _LOWriter_DirFrmtStrikeOut ; _LOWriter_DirFrmtUnderLine ##LibreOfficeWriter_Doc## ; _LOWriter_DocBookmarkDelete ; _LOWriter_DocBookmarkGetAnchor ; _LOWriter_DocBookmarkGetObj ; _LOWriter_DocBookmarkInsert ; _LOWriter_DocBookmarkModify ; _LOWriter_DocBookmarksHasName ; _LOWriter_DocBookmarksList ; _LOWriter_DocClose ; _LOWriter_DocConnect ; _LOWriter_DocConvertTableToText ; _LOWriter_DocConvertTextToTable ; _LOWriter_DocCreate ; _LOWriter_DocCreateTextCursor ; _LOWriter_DocDescription ; _LOWriter_DocEnumPrinters ; _LOWriter_DocEnumPrintersAlt ; _LOWriter_DocExecuteDispatch ; _LOWriter_DocExport ; _LOWriter_DocFindAll ; _LOWriter_DocFindAllInRange ; _LOWriter_DocFindNext ; _LOWriter_DocFooterGetTextCursor ; _LOWriter_DocGenProp ; _LOWriter_DocGenPropCreation ; _LOWriter_DocGenPropModification ; _LOWriter_DocGenPropPrint ; _LOWriter_DocGenPropTemplate ; _LOWriter_DocGetCounts ; _LOWriter_DocGetName ; _LOWriter_DocGetPath ; _LOWriter_DocGetString ; _LOWriter_DocGetViewCursor ; _LOWriter_DocHasFrameName ; _LOWriter_DocHasImageName ; _LOWriter_DocHasPath ; _LOWriter_DocHasTableName ; _LOWriter_DocHeaderGetTextCursor ; _LOWriter_DocHyperlinkInsert ; _LOWriter_DocInsertControlChar ; _LOWriter_DocInsertString ; _LOWriter_DocIsActive ; _LOWriter_DocIsModified ; _LOWriter_DocIsReadOnly ; _LOWriter_DocMaximize ; _LOWriter_DocMinimize ; _LOWriter_DocOpen ; _LOWriter_DocPosAndSize ; _LOWriter_DocPrint ; _LOWriter_DocPrintIncludedSettings ; _LOWriter_DocPrintMiscSettings ; _LOWriter_DocPrintPageSettings ; _LOWriter_DocPrintSizeSettings ; _LOWriter_DocRedo ; _LOWriter_DocRedoCurActionTitle ; _LOWriter_DocRedoGetAllActionTitles ; _LOWriter_DocRedoIsPossible ; _LOWriter_DocReplaceAll ; _LOWriter_DocReplaceAllInRange ; _LOWriter_DocSave ; _LOWriter_DocSaveAs ; _LOWriter_DocToFront ; _LOWriter_DocUndo ; _LOWriter_DocUndoCurActionTitle ; _LOWriter_DocUndoGetAllActionTitles ; _LOWriter_DocUndoIsPossible ; _LOWriter_DocViewCursorGetPosition ; _LOWriter_DocVisible ; _LOWriter_DocZoom ##LibreOfficeWriter_Field## ; _LOWriter_FieldAuthorInsert ; _LOWriter_FieldAuthorModify ; _LOWriter_FieldChapterInsert ; _LOWriter_FieldChapterModify ; _LOWriter_FieldCombCharInsert ; _LOWriter_FieldCombCharModify ; _LOWriter_FieldCommentInsert ; _LOWriter_FieldCommentModify ; _LOWriter_FieldCondTextInsert ; _LOWriter_FieldCondTextModify ; _LOWriter_FieldCurrentDisplayGet ; _LOWriter_FieldDateTimeInsert ; _LOWriter_FieldDateTimeModify ; _LOWriter_FieldDelete ; _LOWriter_FieldDocInfoCommentsInsert ; _LOWriter_FieldDocInfoCommentsModify ; _LOWriter_FieldDocInfoCreateAuthInsert ; _LOWriter_FieldDocInfoCreateAuthModify ; _LOWriter_FieldDocInfoCreateDateTimeInsert ; _LOWriter_FieldDocInfoCreateDateTimeModify ; _LOWriter_FieldDocInfoEditTimeInsert ; _LOWriter_FieldDocInfoEditTimeModify ; _LOWriter_FieldDocInfoKeywordsInsert ; _LOWriter_FieldDocInfoKeywordsModify ; _LOWriter_FieldDocInfoModAuthInsert ; _LOWriter_FieldDocInfoModAuthModify ; _LOWriter_FieldDocInfoModDateTimeInsert ; _LOWriter_FieldDocInfoModDateTimeModify ; _LOWriter_FieldDocInfoPrintAuthInsert ; _LOWriter_FieldDocInfoPrintAuthModify ; _LOWriter_FieldDocInfoPrintDateTimeInsert ; _LOWriter_FieldDocInfoPrintDateTimeModify ; _LOWriter_FieldDocInfoRevNumInsert ; _LOWriter_FieldDocInfoRevNumModify ; _LOWriter_FieldDocInfoSubjectInsert ; _LOWriter_FieldDocInfoSubjectModify ; _LOWriter_FieldDocInfoTitleInsert ; _LOWriter_FieldDocInfoTitleModify ; _LOWriter_FieldFileNameInsert ; _LOWriter_FieldFileNameModify ; _LOWriter_FieldFuncHiddenParInsert ; _LOWriter_FieldFuncHiddenParModify ; _LOWriter_FieldFuncHiddenTextInsert ; _LOWriter_FieldFuncHiddenTextModify ; _LOWriter_FieldFuncInputInsert ; _LOWriter_FieldFuncInputModify ; _LOWriter_FieldFuncPlaceholderInsert ; _LOWriter_FieldFuncPlaceholderModify ; _LOWriter_FieldGetAnchor ; _LOWriter_FieldInputListInsert ; _LOWriter_FieldInputListModify ; _LOWriter_FieldPageNumberInsert ; _LOWriter_FieldPageNumberModify ; _LOWriter_FieldRefBookMarkInsert ; _LOWriter_FieldRefBookMarkModify ; _LOWriter_FieldRefEndnoteInsert ; _LOWriter_FieldRefEndnoteModify ; _LOWriter_FieldRefFootnoteInsert ; _LOWriter_FieldRefFootnoteModify ; _LOWriter_FieldRefGetType ; _LOWriter_FieldRefInsert ; _LOWriter_FieldRefMarkDelete ; _LOWriter_FieldRefMarkGetAnchor ; _LOWriter_FieldRefMarkList ; _LOWriter_FieldRefMarkSet ; _LOWriter_FieldRefModify ; _LOWriter_FieldsAdvGetList ; _LOWriter_FieldsDocInfoGetList ; _LOWriter_FieldSenderInsert ; _LOWriter_FieldSenderModify ; _LOWriter_FieldSetVarInsert ; _LOWriter_FieldSetVarMasterCreate ; _LOWriter_FieldSetVarMasterDelete ; _LOWriter_FieldSetVarMasterExists ; _LOWriter_FieldSetVarMasterGetObj ; _LOWriter_FieldSetVarMasterList ; _LOWriter_FieldSetVarMasterListFields ; _LOWriter_FieldSetVarModify ; _LOWriter_FieldsGetList ; _LOWriter_FieldShowVarInsert ; _LOWriter_FieldShowVarModify ; _LOWriter_FieldStatCountInsert ; _LOWriter_FieldStatCountModify ; _LOWriter_FieldStatTemplateInsert ; _LOWriter_FieldStatTemplateModify ; _LOWriter_FieldUpdate ; _LOWriter_FieldVarSetPageInsert ; _LOWriter_FieldVarSetPageModify ; _LOWriter_FieldVarShowPageInsert ; _LOWriter_FieldVarShowPageModify ##LibreOfficeWriter_Font## ; _LOWriter_FontExists ; _LOWriter_FontsList ##LibreOfficeWriter_FootEndNotes## ; _LOWriter_EndnoteDelete ; _LOWriter_EndnoteGetAnchor ; _LOWriter_EndnoteGetTextCursor ; _LOWriter_EndnoteInsert ; _LOWriter_EndnoteModifyAnchor ; _LOWriter_EndnoteSettingsAutoNumber ; _LOWriter_EndnoteSettingsStyles ; _LOWriter_EndnotesGetList ; _LOWriter_FootnoteDelete ; _LOWriter_FootnoteGetAnchor ; _LOWriter_FootnoteGetTextCursor ; _LOWriter_FootnoteInsert ; _LOWriter_FootnoteModifyAnchor ; _LOWriter_FootnoteSettingsAutoNumber ; _LOWriter_FootnoteSettingsContinuation ; _LOWriter_FootnoteSettingsStyles ; _LOWriter_FootnotesGetList ##LibreOfficeWriter_Frame## ; _LOWriter_FrameAreaColor ; _LOWriter_FrameAreaGradient ; _LOWriter_FrameBorderColor ; _LOWriter_FrameBorderPadding ; _LOWriter_FrameBorderStyle ; _LOWriter_FrameBorderWidth ; _LOWriter_FrameColumnSeparator ; _LOWriter_FrameColumnSettings ; _LOWriter_FrameColumnSize ; _LOWriter_FrameCreate ; _LOWriter_FrameCreateTextCursor ; _LOWriter_FrameDelete ; _LOWriter_FrameGetAnchor ; _LOWriter_FrameGetObjByCursor ; _LOWriter_FrameGetObjByName ; _LOWriter_FrameHyperlink ; _LOWriter_FrameOptions ; _LOWriter_FrameOptionsName ; _LOWriter_FramesGetNames ; _LOWriter_FrameShadow ; _LOWriter_FrameStyleAreaColor ; _LOWriter_FrameStyleAreaGradient ; _LOWriter_FrameStyleBorderColor ; _LOWriter_FrameStyleBorderPadding ; _LOWriter_FrameStyleBorderStyle ; _LOWriter_FrameStyleBorderWidth ; _LOWriter_FrameStyleColumnSeparator ; _LOWriter_FrameStyleColumnSettings ; _LOWriter_FrameStyleColumnSize ; _LOWriter_FrameStyleCreate ; _LOWriter_FrameStyleDelete ; _LOWriter_FrameStyleExists ; _LOWriter_FrameStyleGetObj ; _LOWriter_FrameStyleOptions ; _LOWriter_FrameStyleOrganizer ; _LOWriter_FrameStyleSet ; _LOWriter_FrameStylesGetNames ; _LOWriter_FrameStyleShadow ; _LOWriter_FrameStyleTransparency ; _LOWriter_FrameStyleTransparencyGradient ; _LOWriter_FrameStyleTypePosition ; _LOWriter_FrameStyleTypeSize ; _LOWriter_FrameStyleWrap ; _LOWriter_FrameStyleWrapOptions ; _LOWriter_FrameTransparency ; _LOWriter_FrameTransparencyGradient ; _LOWriter_FrameTypePosition ; _LOWriter_FrameTypeSize ; _LOWriter_FrameWrap ; _LOWriter_FrameWrapOptions ##LibreOfficeWriter_Helper## ; _LOWriter_ComError_UserFunction ; _LOWriter_ConvertColorFromLong ; _LOWriter_ConvertColorToLong ; _LOWriter_ConvertFromMicrometer ; _LOWriter_ConvertToMicrometer ; _LOWriter_DateFormatKeyCreate ; _LOWriter_DateFormatKeyDelete ; _LOWriter_DateFormatKeyExists ; _LOWriter_DateFormatKeyGetString ; _LOWriter_DateFormatKeyList ; _LOWriter_DateStructCreate ; _LOWriter_DateStructModify ; _LOWriter_FindFormatModifyAlignment ; _LOWriter_FindFormatModifyEffects ; _LOWriter_FindFormatModifyFont ; _LOWriter_FindFormatModifyHyphenation ; _LOWriter_FindFormatModifyIndent ; _LOWriter_FindFormatModifyOverline ; _LOWriter_FindFormatModifyPageBreak ; _LOWriter_FindFormatModifyPosition ; _LOWriter_FindFormatModifyRotateScaleSpace ; _LOWriter_FindFormatModifySpacing ; _LOWriter_FindFormatModifyStrikeout ; _LOWriter_FindFormatModifyTxtFlowOpt ; _LOWriter_FindFormatModifyUnderline ; _LOWriter_FormatKeyCreate ; _LOWriter_FormatKeyDelete ; _LOWriter_FormatKeyExists ; _LOWriter_FormatKeyGetString ; _LOWriter_FormatKeyList ; _LOWriter_PathConvert ; _LOWriter_VersionGet ##LibreOfficeWriter_Images## ; _LOWriter_ImageAreaColor ; _LOWriter_ImageAreaGradient ; _LOWriter_ImageAreaTransparency ; _LOWriter_ImageAreaTransparencyGradient ; _LOWriter_ImageBorderColor ; _LOWriter_ImageBorderPadding ; _LOWriter_ImageBorderStyle ; _LOWriter_ImageBorderWidth ; _LOWriter_ImageColorAdjust ; _LOWriter_ImageCrop ; _LOWriter_ImageDelete ; _LOWriter_ImageGetAnchor ; _LOWriter_ImageGetObjByName ; _LOWriter_ImageHyperlink ; _LOWriter_ImageInsert ; _LOWriter_ImageModify ; _LOWriter_ImageOptions ; _LOWriter_ImageOptionsName ; _LOWriter_ImageReplace ; _LOWriter_ImagesGetNames ; _LOWriter_ImageShadow ; _LOWriter_ImageSize ; _LOWriter_ImageTransparency ; _LOWriter_ImageTypePosition ; _LOWriter_ImageTypeSize ; _LOWriter_ImageWrap ; _LOWriter_ImageWrapOptions ##LibreOfficeWriter_Num## ; _LOWriter_NumStyleCreate ; _LOWriter_NumStyleCustomize ; _LOWriter_NumStyleDelete ; _LOWriter_NumStyleExists ; _LOWriter_NumStyleGetObj ; _LOWriter_NumStyleOrganizer ; _LOWriter_NumStylePosition ; _LOWriter_NumStyleSet ; _LOWriter_NumStyleSetLevel ; _LOWriter_NumStylesGetNames ##LibreOfficeWriter_Page## ; _LOWriter_PageStyleAreaColor ; _LOWriter_PageStyleAreaGradient ; _LOWriter_PageStyleBorderColor ; _LOWriter_PageStyleBorderPadding ; _LOWriter_PageStyleBorderStyle ; _LOWriter_PageStyleBorderWidth ; _LOWriter_PageStyleColumnSeparator ; _LOWriter_PageStyleColumnSettings ; _LOWriter_PageStyleColumnSize ; _LOWriter_PageStyleCreate ; _LOWriter_PageStyleDelete ; _LOWriter_PageStyleExists ; _LOWriter_PageStyleFooter ; _LOWriter_PageStyleFooterAreaColor ; _LOWriter_PageStyleFooterAreaGradient ; _LOWriter_PageStyleFooterBorderColor ; _LOWriter_PageStyleFooterBorderPadding ; _LOWriter_PageStyleFooterBorderStyle ; _LOWriter_PageStyleFooterBorderWidth ; _LOWriter_PageStyleFooterShadow ; _LOWriter_PageStyleFooterTransparency ; _LOWriter_PageStyleFooterTransparencyGradient ; _LOWriter_PageStyleFootnoteArea ; _LOWriter_PageStyleFootnoteLine ; _LOWriter_PageStyleGetObj ; _LOWriter_PageStyleHeader ; _LOWriter_PageStyleHeaderAreaColor ; _LOWriter_PageStyleHeaderAreaGradient ; _LOWriter_PageStyleHeaderBorderColor ; _LOWriter_PageStyleHeaderBorderPadding ; _LOWriter_PageStyleHeaderBorderStyle ; _LOWriter_PageStyleHeaderBorderWidth ; _LOWriter_PageStyleHeaderShadow ; _LOWriter_PageStyleHeaderTransparency ; _LOWriter_PageStyleHeaderTransparencyGradient ; _LOWriter_PageStyleLayout ; _LOWriter_PageStyleMargins ; _LOWriter_PageStyleOrganizer ; _LOWriter_PageStylePaperFormat ; _LOWriter_PageStyleSet ; _LOWriter_PageStylesGetNames ; _LOWriter_PageStyleShadow ; _LOWriter_PageStyleTransparency ; _LOWriter_PageStyleTransparencyGradient ##LibreOfficeWriter_Par## ; _LOWriter_ParObjCopy ; _LOWriter_ParObjCreateList ; _LOWriter_ParObjDelete ; _LOWriter_ParObjPaste ; _LOWriter_ParObjSectionsGet ; _LOWriter_ParObjSelect ; _LOWriter_ParStyleAlignment ; _LOWriter_ParStyleBackColor ; _LOWriter_ParStyleBorderColor ; _LOWriter_ParStyleBorderPadding ; _LOWriter_ParStyleBorderStyle ; _LOWriter_ParStyleBorderWidth ; _LOWriter_ParStyleCreate ; _LOWriter_ParStyleDelete ; _LOWriter_ParStyleDropCaps ; _LOWriter_ParStyleEffect ; _LOWriter_ParStyleExists ; _LOWriter_ParStyleFont ; _LOWriter_ParStyleFontColor ; _LOWriter_ParStyleGetObj ; _LOWriter_ParStyleHyphenation ; _LOWriter_ParStyleIndent ; _LOWriter_ParStyleOrganizer ; _LOWriter_ParStyleOutLineAndList ; _LOWriter_ParStyleOverLine ; _LOWriter_ParStylePageBreak ; _LOWriter_ParStylePosition ; _LOWriter_ParStyleRotateScale ; _LOWriter_ParStyleSet ; _LOWriter_ParStylesGetNames ; _LOWriter_ParStyleShadow ; _LOWriter_ParStyleSpace ; _LOWriter_ParStyleSpacing ; _LOWriter_ParStyleStrikeOut ; _LOWriter_ParStyleTabStopCreate ; _LOWriter_ParStyleTabStopDelete ; _LOWriter_ParStyleTabStopList ; _LOWriter_ParStyleTabStopMod ; _LOWriter_ParStyleTxtFlowOpt ; _LOWriter_ParStyleUnderLine ##LibreOfficeWriter_Shapes## ; _LOWriter_ShapesGetNames ##LibreOfficeWriter_Table## ; _LOWriter_TableBorderColor ; _LOWriter_TableBorderPadding ; _LOWriter_TableBorderStyle ; _LOWriter_TableBorderWidth ; _LOWriter_TableBreak ; _LOWriter_TableColor ; _LOWriter_TableColumnDelete ; _LOWriter_TableColumnGetCount ; _LOWriter_TableColumnInsert ; _LOWriter_TableCreate ; _LOWriter_TableCreateCursor ; _LOWriter_TableCursor ; _LOWriter_TableDelete ; _LOWriter_TableGetCellNames ; _LOWriter_TableGetCellObjByCursor ; _LOWriter_TableGetCellObjByName ; _LOWriter_TableGetCellObjByPosition ; _LOWriter_TableGetData ; _LOWriter_TableGetObjByCursor ; _LOWriter_TableGetObjByName ; _LOWriter_TableInsert ; _LOWriter_TableMargin ; _LOWriter_TableProperties ; _LOWriter_TableRowColor ; _LOWriter_TableRowDelete ; _LOWriter_TableRowGetCount ; _LOWriter_TableRowInsert ; _LOWriter_TableRowProperty ; _LOWriter_TableSetData ; _LOWriter_TablesGetNames ; _LOWriter_TableShadow ; _LOWriter_TableWidth Changes: Problems? If you encounter an error, you can either report it here, in this topic, or you can go to the GitHub repository and open an issue. Please be as detailed as possible on the problem and how to reproduce it. GitHub Repository: https://github.com/mlipok/Au3LibreOffice/issues Want to help develop? Thanks for wanting to contribute! Head on over to the GitHub repository and make your own fork of the project, and then create a Pull-Request for your additions. Please try to follow the Pull-Request template. GitHub repository: https://github.com/mlipok/Au3LibreOffice/tree/main Contributing: https://github.com/mlipok/Au3LibreOffice/tree/main/Docs/CONTRIBUTING.md Pull Request Template: https://github.com/mlipok/Au3LibreOffice/tree/main/Docs/PULL_REQUEST_TEMPLATE.md Code of Conduct: https://github.com/mlipok/Au3LibreOffice/tree/main/Docs/CODE_OF_CONDUCT.md Further information: Some functions will also work in Open Office Writer, but many I know have properties or methods which are not available in O.O., I have not documented these as of yet. As English is my only language, of course this UDF was written for controlling the English version of L.O., and may not work for other language versions. In the fall of 2023 user @mLipok asked if I would be willing to work together on GitHub to further development of this project. Since then we have been collaborating on developing and cleaning up this UDF. @mLipok and I have also decided that this UDF will eventually be expanded to include more than just L.O. Writer, and will eventually include as many components of Libre Office as we are able to produce working functions for. Present Limitations: There are some limitations to this UDF that I know of, a few of which are as follows: ♦ Writer: — Performing a find format search with any of the following attributes (Orphan and Widow; Any hyphenation related settings; Vertical Alignment; Rotate and Scale; Relief; Text Direction) causes ANY words matching the search word to be deleted, whether it had those attributes or not, whether a FIND or REPLACE is performed. This is a reported L.O. bug, some will be fixed, possibly in version 7.5 or 7.6, the ones to be fixed are (Vertical Alignment; Text Direction; Relief; Rotate and Scale), the others (Orphan and Widow; All hyphenation), have a known cause, but as of yet no fix has been decided upon. — Setting column sizing is calculated relatively, and I am unable to determine the proper calculations to interpret and set their values. They are still settable, but probably not accurately, unless you know the appropriate value to use. — I am unable to create functions for inserting Heading or Numbered paragraph fields, I also skipped all Numbering Range Fields, as they were quite complex. I skipped Doc Info Custom Field, again due to complexity. I skipped DDE and Database fields, as I am unsure of what their use is/how they work, thus I don’t know how to test if it’s working etc., if I did make a function for them. Finally I skipped the Execute Macro field, as I didn’t see it as a wise to add the ability to automate writing and running a macro, which could possibly be used maliciously. — Modifying Numbering Styles works fine, but due to some form of incompatibility between AutoIt and LibreOffice, the normal way of modifying the settings does not work. I thus had to find and use a work around method. — Certain mathematical calculations are slightly inaccurate, e.g. conversion from Hue, Saturation, Brightness to Long color code format is off, but the reverse works fine? It shouldn’t cause a noticeable color difference, and you can always use RGB, HEX, or CMYK values instead, which seem to be accurate. I haven’t found why the HSB calculation is off yet. — Creating a FileName Field with “Fixed” set to True causes the display type to be incorrect, the desired type can be achieved but not using the appropriate flag. The bug has been reported, but there has been no fix found yet. — Image, Pattern, and Hatch Area fill aren’t available. — Zoom type is not possible to set. — Find and Replace in a selection using Regular expressions and formatting may cause unexpected results. Possible Future Modifications: There are some modifications/additions on the drawing board, namely: — Adding more Field insertion/modification functions. — Adding Image, Pattern, and Hatch Area fill. — Eliminate the need of so many arrays in many functions. — Add documentation for which functions will/won’t work for Open Office. — Fill in the “Link” section. — Possibly rename all functions to just “LOW” instead of LOWriter, for brevity. — Add support for Calc and Draw. NOTES: —This UDF works ONLY for the installed version of LibreOffice, not the portable version. (Thank you @argumentum) —For those using older AutoIt versions, one internal function used for “Saving as” and “Exporting” documents uses Maps. In older AutoIt installations, a syntax error will be reported due to this. — LibreOffice uses Micrometers for sizing internally, all functions, unless otherwise stated, use Micrometers. I have created a converter for converting to/from Inches, Centimeters, Printer’s Points, and Millimeters to/from Micrometers, for all sizing needs. _LOWriter_ConvertFromMicrometer, and _LOWriter_ConvertToMicrometer. — LibreOffice uses the Long color format for all color settings, I have also created a converter for that, _LOWriter_ConvertColorFromLong, and _LOWriter_ConvertColorToLong, for converting from/to Hex; (R)ed, (G)reen, (Blue); (H)ue, (S)aturation, and (B)rightness; and (C)yan, (M)agenta, (Y)ellow, Blac(K); to/from long color format. As noted above, HSB to Long conversion is slightly inaccurate. — There has been much editing and re-editing, copying and pasting etc., while creating this UDF. As I learned better how to do something, or when I understood the UDF Spec wiki better, I would have to go back and update my already created functions, as well as re-document them. You will probably find statements that don’t make a lot of sense, etc., this is why. I and mLipok have gone through all of the function headers several times now, so most, if not all errors should be fixed. Acknowledgements: I would like to give a hearty thank you to: — @mLipok for helping me develop this UDF. —GMK, Leagnus, Andy G, mLipok for their OOo/LibO Calc UDF, which provided pieces needed, and a template for developing many pieces of this UDF. —mLipok again, for his “WriterDemo.au3” (based on the LibreOffice SDK example, WriterDemo.vbs) which gave me a basic beginning on this project. Without this, I would never have found the “Bridge_GetStruct” code piece for initiating the “Properties” of L.O. As well as the basics of opening L.O. through Autoit. https://www.autoitscript.com/forum/topic/204665-libreopenoffice-writer/?do=findComment&comment=1471711 —water for his Word UDF included with Autoit, which offered a good idea of basic Word functions to create, and also good examples for UDF function layout. —jguinch for his Printers Management UDF, from which I used and modified _PrintMgr_EnumPrinter; —Andrew Pitonyak for his invaluable book on writing Open Office/ Libre Office Macros, this helped me immensely with finding needed functions / properties. OpenOffice.org Macros Explained — OOME Third Edition — Numerous forum post, websites etc., that I have used for various problem solving, both this forum, Libre Office's forum, Open Office's forum, and others. Au3LibreOffice-0.9.1.zip
  4. @mLipok asked me to come up with an AutoIt example for this. So here's what I came up with, including an added bonus. #include <Array.au3> Global $oMyError = ObjEvent('AutoIt.Error', '_ErrFunc') Global $sLocale = 'en' Global $sCountry = 'US' Global $sWord = InputBox("Spell Checker", "File to check (empty for end)?") While $sWord <> "" Global $vSpell = _OOo_SpellChecker($sWord, $sLocale, $sCountry) If $vSpell Then MsgBox(0, "Spell Checker", $sWord & " is valid") Else If MsgBox(4, "Spell Checker", $sWord & " is NOT valid. Would you like to see alternatives?") = 6 Then Global $aAlternatives = _OOo_SpellChecker($sWord, $sLocale, $sCountry, True) _ArrayDisplay($aAlternatives, "Spell Checker") EndIf EndIf $sWord = InputBox("Spell Checker", "File to check (empty for end)?") WEnd ; #FUNCTION# ==================================================================================================================== ; Name ..........: _OOo_SpellChecker ; Description ...: Checks a single word with the OpenOffice/LibreOffice spell checker to see if it is spelled correctly in a ; given locale. ; Syntax ........: _OOo_SpellChecker($sWord[, $sLocale = 'en'[, $sCountry = 'US'[, $bShowAlternatives = False]]]) ; Parameters ....: $sWord - a string value. ; $sLocale - [optional] a string value. Default is 'en'. ; $sCountry - [optional] a string value. Default is 'US'. ; $bShowAlternatives - [optional] a boolean value. Default is False. ; Return values .: On Success - Returns True if the word is spelled correctly using the specified language, False ; otherwise. If word is not spelled correctly and $bShowAlternatives is set to True, ; an array of suggestions is returned. ; On Failure - Returns 0 and sets @error and @extended: ; | @error = 0 - Success (No error) ; | 1 - General error ; | 2 - Invalid type ; | 3 - Invalid value ; | 4 - No match found ; | @extended = number of offending parameter ; Author ........: GMK ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: https://www.openoffice.org/api/docs/common/ref/com/sun/star/linguistic2/XSpellChecker.html ; https://www.openoffice.org/api/docs/common/ref/com/sun/star/linguistic2/XSpellAlternatives.html ; http://www.loc.gov/standards/iso639-2/php/code_list.php ; https://www.iso.org/obp/ui/#search ; Example .......: Yes ; =============================================================================================================================== Func _OOo_SpellChecker($sWord, $sLocale = 'en', $sCountry = 'US', $bShowAlternatives = False) Local Enum $eErr_Success, _ $eErr_GeneralError, _ $eErr_InvalidType, _ $eErr_InvalidValue, _ $eErr_NoMatch If Not IsString($sWord) Then Return SetError($eErr_InvalidType, 1, 0) If StringRegExp($sWord, '\d|\s') Then Return SetError($eErr_InvalidValue, 1, 0) If Not IsString($sLocale) Then Return SetError($eErr_InvalidType, 2, 0) If StringLen($sLocale) <> 2 Then Return SetError($eErr_InvalidValue, 2, 0) If Not IsString($sCountry) Then Return SetError($eErr_InvalidType, 3, 0) If StringLen($sCountry) <> 2 Then Return SetError($eErr_InvalidValue, 3, 0) Local $oSM = ObjCreate('com.sun.star.ServiceManager') If Not IsObj($oSM) Then Return SetError($eErr_GeneralError, 10, 0) Local $oLocale = $oSM.Bridge_GetStruct('com.sun.star.lang.Locale') If Not IsObj($oLocale) Then Return SetError($eErr_GeneralError, 11, 0) $oLocale.Language = $sLocale $oLocale.Country = $sCountry Local $oLinguService = $oSM.createInstance('com.sun.star.linguistic2.LinguServiceManager') If Not IsObj($oLinguService) Then Return SetError($eErr_GeneralError, 12, 0) Local $oSpellChecker = $oLinguService.getSpellChecker If Not IsObj($oSpellChecker) Then Return SetError($eErr_GeneralError, 13, 0) If Not $oSpellChecker.hasLocale($oLocale) Then Return SetError($eErr_NoMatch, 2, 0) Local $oPropertyValue = $oSM.Bridge_GetStruct('com.sun.star.beans.PropertyValue') If Not IsObj($oPropertyValue) Then Return SetError($eErr_GeneralError, 14, 0) Local $aPropertyValue[1] = [$oPropertyValue] Local $nRandom = Random(0, 0.5) Local $bReturn = $oSpellChecker.isValid($sWord, $nRandom, $aPropertyValue) If @error Then Return SetError($eErr_GeneralError, 15, 0) If Not $bReturn And $bShowAlternatives Then Local $oSpell = $oSpellChecker.spell($sWord, $nRandom, $aPropertyValue) If Not IsObj($oSpell) Then Return SetError($eErr_GeneralError, 16, 0) Local $aReturn = $oSpell.getAlternatives() Local $iAlternatives = UBound($aReturn) ReDim $aReturn[$iAlternatives + 1] $iAlternatives += 1 For $i = $iAlternatives - 1 To 1 Step -1 $aReturn[$i] = $aReturn[$i - 1] Next $aReturn[0] = $oSpell.getAlternativesCount() If @error Then Return SetError($eErr_GeneralError, 17, 0) Return SetError($eErr_Success, 0, $aReturn) EndIf Return SetError($eErr_Success, 0, $bReturn) EndFunc Func _ErrFunc($oError) ConsoleWrite(@ScriptName & ' (' & $oError.scriptline & ') : ==> COM Error intercepted !' & @CRLF & _ @TAB & 'err.number is: ' & @TAB & @TAB & '0x' & Hex($oError.number) & @CRLF & _ @TAB & 'err.windescription:' & @TAB & $oError.windescription & @CRLF & _ @TAB & 'err.description is: ' & @TAB & $oError.description & @CRLF & _ @TAB & 'err.source is: ' & @TAB & @TAB & $oError.source & @CRLF & _ @TAB & 'err.helpfile is: ' & @TAB & $oError.helpfile & @CRLF & _ @TAB & 'err.helpcontext is: ' & @TAB & $oError.helpcontext & @CRLF & _ @TAB & 'err.lastdllerror is: ' & @TAB & $oError.lastdllerror & @CRLF & _ @TAB & 'err.scriptline is: ' & @TAB & $oError.scriptline & @CRLF & _ @TAB & 'err.retcode is: ' & @TAB & '0x' & Hex($oError.retcode) & @CRLF & @CRLF) EndFunc ;==>_ErrFunc
×
×
  • Create New...