<?xml version="1.0" encoding="utf-8" ?>
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
/*
:Author: David Goodger (
goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See
https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
obasync - Office Basic Macro Source Synchronizer
DESCRIPTION
obasync is an OpenOffice/LibreOffice Basic macro source
synchronizer. It synchronizes your Basic macros with your local
project files.
Given the following source files:
- Directory: MyApp
- Files: MyMacros.vb Utils.vb Registry.vb Data.vb
Running obasync will synchronize them with the following Basic
macros:
- Library: MyApp
- Modules: MyMacros Utils Registry Data
If the Basic library MyApp does not exist, it will be created.
Missing modules will be added, and excess modules will be removed.
On the other hand, given the following Basic macros:
- Library: MyApp
- Modules: MyMacros Utils Registry Data
Running obasync --get will synchronize them with the following
source files:
- Directory: MyApp
- Files: MyMacros.vb Utils.vb Registry.vb Data.vb
Missing source files will be added, and excess source files will be
deleted.
INSTALL
You can either:
- Install obasync with pip (recommended), or
- Download the obasync script manually, and run it with the
Python that come with your OpenOffice/LibreOffice installation.
We will explain them in detail.
OpenOffice/LibreOffice That Comes with Your Linux
Install with pip (Recommended)
Your system may already have pip installed. If not, install the
python-pip package from the system package manager. Then, run:
pip install obasync
Download and Install Manually
Download obasync from either PyPI or GitHub. Then, run obasync as:
python obasync
Or, you can edit the script and change the first line (shebang) to:
#! /usr/bin/python
and save this script somewhere in your path, say, /usr/local/bin.
Then you can run obasync.
OpenOffice 4 on Linux
Install with pip (Recommended)
Install pip for your OpenOffice installation, and then install
obasync with this pip:
wget https://bootstrap.pypa.io/get-pip.py
sudo /opt/openoffice4/program/python get-pip.py
/opt/openoffice4/program/python-core-2.7.6/bin/pip install obasync
Download and Install Manually
Download obasync from either PyPI or GitHub. Then, run obasync as:
/opt/openoffice4/program/python obasync
Or, you can edit the script and change the first line (shebang) to:
#! /opt/openoffice4/program/python
and save this script somewhere in your path, say, /usr/local/bin.
Then you can run obasync.
LibreOffice on Linux
Python from LibreOffice on Linux does not install pip properly.
However, you can still download and install obasync manually.
Install with pip (Recommended)
Download obasync from either PyPI or GitHub. Then, run obasync as:
/opt/libreoffice5.2/program/python obasync
Or, you can edit the script and change the first line (shebang) to:
#! /opt/libreoffice5.2/program/python
and save this script somewhere in your path, say, /usr/local/bin.
Then you can run obasync.
OpenOffice on MS-Windows
You can install obasync with pip, but the result is messy.
The recommended way is to download and install obasync manually.
Download and Install Manually
Download obasync from either PyPI or GitHub. Then, run obasync as:
"C:\Program Files (x86)\OpenOffice 4\program\python.exe" obasync
LibreOffice on MS-Windows
You can install obasync with pip, but the result is messy.
The recommended way is to download and install obasync manually.
Download and Install Manually
Download obasync from either PyPI or GitHub. Then, run obasync as:
"C:\Program Files\LibreOffice 5\program\python.exe" obasync
OpenOffice on Mac OS X
Install with pip (Recommended)
Install pip first, and then install obasync with pip:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo pip install obasync
Download and Install Manually
Download obasync from either PyPI or GitHub. Then, run obasync as:
python obasync
Or, you can edit the script and change the first line (shebang) to:
#! /usr/bin/python
and save this script somewhere in your path, say, /usr/local/bin.
Then you can run obasync.
LibreOffice on Mac OS X
Python from LibreOffice on Mac OS X does not install pip properly.
However, you can still download and install obasync manually.
Download and Install Manually
Download obasync from either PyPI or GitHub. Then, run obasync as:
/Applications/LibreOffice.app/Contents/Resources/python obasync
Or, you can edit the script and change the first line (shebang) to:
#! /Applications/LibreOffice.app/Contents/Resources/python
and save this script somewhere in your path, say, /usr/local/bin.
Then you can run obasync.
OPTIONS
obasync [options] [DIRECTORY [LIBRARY]]
- DIRECTORY The project source directory. Default to the current
- working directory.
- LIBRARY The name of the Basic library. Default to the same
- name as the project source directory.
--get |
Download (check out) the macros from the
OpenOffice/LibreOffice Basic storage to the source
files, instead of upload (check in). By default it
uploads the source files onto the
OpenOffice/LibreOffice Basic storage. |
-p, --port N |
The TCP port to communicate with
OpenOffice/LibreOffice. The default is 2002. You can
change it if port 2002 is already in use. |
- -x, --ext .EXT The file name extension of the source files. The
- default is .vb. This may be used for your
convenience of editor syntax highlighting.
-e, --encoding CS |
| The encoding of the source files. The default is
system-dependent. For example, on Traditional Chinese
MS-Windows, this will be CP950 (Big5). You can change
this to UTF-8 for convenience if you
obtain/synchronize your source code from other
sources. |
- -r, --run MODULE.MACRO
- Run he specific macro after synchronization, for
convenience.
--user |
Store the macros in the user macro storage. (default) |
--doc |
Store the macros in the document macro storage. |
- --target TARGET The target storage document if there are more than one
- opened documents. You may specify a partial path, or
as "Untitied 1" (in your language) if it is a new
file.
-h, --help |
Show the help message and exit |
-v, --version |
Show program’s version number and exit |
COPYRIGHT
Copyright (c) 2016-2017 imacat.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SUPPORT
Contact imacat <imacat@mail.imacat.idv.tw> if you have any question.
</html>