Added new chapter about CUPS printers
authorweiher
Wed, 07 Feb 2018 16:53:37 +0100
changeset 13 a21f3604f1db
parent 12 d0f2a667d9d5
child 14 7877020262a9
child 15 523ca1dfd077
Added new chapter about CUPS printers
elog2labfolder/_build/doctrees/environment.pickle
elog2labfolder/_build/doctrees/import_export.doctree
elog2labfolder/_build/doctrees/importing_from_elog.doctree
elog2labfolder/_build/doctrees/index.doctree
elog2labfolder/_build/doctrees/installation_cups.doctree
elog2labfolder/_build/latex/create_local_printer01.png
elog2labfolder/_build/latex/create_local_printer02.png
elog2labfolder/_build/latex/create_local_printer03.png
elog2labfolder/_build/latex/create_local_printer04.png
elog2labfolder/_build/latex/create_local_printer05.png
elog2labfolder/_build/latex/create_local_printer06.png
elog2labfolder/_build/latex/create_local_printer07.png
elog2labfolder/_build/latex/cups_print_operating.png
elog2labfolder/_build/latex/elog2labfolder.aux
elog2labfolder/_build/latex/elog2labfolder.fdb_latexmk
elog2labfolder/_build/latex/elog2labfolder.fls
elog2labfolder/_build/latex/elog2labfolder.log
elog2labfolder/_build/latex/elog2labfolder.out
elog2labfolder/_build/latex/elog2labfolder.pdf
elog2labfolder/_build/latex/elog2labfolder.tex
elog2labfolder/_build/latex/elog2labfolder.toc
elog2labfolder/_static/create_local_printer01.png
elog2labfolder/_static/create_local_printer02.png
elog2labfolder/_static/create_local_printer03.png
elog2labfolder/_static/create_local_printer04.png
elog2labfolder/_static/create_local_printer05.png
elog2labfolder/_static/create_local_printer06.png
elog2labfolder/_static/create_local_printer07.png
elog2labfolder/_static/cups_print_operating.png
elog2labfolder/import_export.rst
elog2labfolder/import_export.rst~
elog2labfolder/importing_from_elog.rst
elog2labfolder/importing_from_elog.rst~
elog2labfolder/index.rst
elog2labfolder/index.rst~
elog2labfolder/installation_cups.rst
elog2labfolder/installation_cups.rst~
Binary file elog2labfolder/_build/doctrees/environment.pickle has changed
Binary file elog2labfolder/_build/doctrees/import_export.doctree has changed
Binary file elog2labfolder/_build/doctrees/importing_from_elog.doctree has changed
Binary file elog2labfolder/_build/doctrees/index.doctree has changed
Binary file elog2labfolder/_build/doctrees/installation_cups.doctree has changed
Binary file elog2labfolder/_build/latex/create_local_printer01.png has changed
Binary file elog2labfolder/_build/latex/create_local_printer02.png has changed
Binary file elog2labfolder/_build/latex/create_local_printer03.png has changed
Binary file elog2labfolder/_build/latex/create_local_printer04.png has changed
Binary file elog2labfolder/_build/latex/create_local_printer05.png has changed
Binary file elog2labfolder/_build/latex/create_local_printer06.png has changed
Binary file elog2labfolder/_build/latex/create_local_printer07.png has changed
Binary file elog2labfolder/_build/latex/cups_print_operating.png has changed
--- a/elog2labfolder/_build/latex/elog2labfolder.aux	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/_build/latex/elog2labfolder.aux	Wed Feb 07 16:53:37 2018 +0100
@@ -27,32 +27,37 @@
 \newlabel{installation:welcome-to-elog2labfolder-s-documentation}{{1}{1}{Installation of labfolder}{chapter.1}{}}
 \newlabel{installation::doc}{{1}{1}{Installation of labfolder}{chapter.1}{}}
 \newlabel{installation:installation-of-labfolder}{{1}{1}{Installation of labfolder}{chapter.1}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {2}Groups, ownership and sharing in labfolder}{5}{chapter.2}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {2}Printing via CUPS and attaching files to labfolder logbooks}{5}{chapter.2}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{groups:groups-ownership-and-sharing-in-labfolder}{{2}{5}{Groups, ownership and sharing in labfolder}{chapter.2}{}}
-\newlabel{groups::doc}{{2}{5}{Groups, ownership and sharing in labfolder}{chapter.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {2.1}Private projects}{5}{section.2.1}}
-\newlabel{groups:private-projects}{{2.1}{5}{Private projects}{section.2.1}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {2.2}Group projects}{5}{section.2.2}}
-\newlabel{groups:group-projects}{{2.2}{5}{Group projects}{section.2.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {2.3}Group settings}{6}{section.2.3}}
-\newlabel{groups:group-settings}{{2.3}{6}{Group settings}{section.2.3}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {3}Import and export of projects and entries}{7}{chapter.3}}
+\newlabel{installation_cups:printing-via-cups-and-attaching-files-to-labfolder-logbooks}{{2}{5}{Printing via CUPS and attaching files to labfolder logbooks}{chapter.2}{}}
+\newlabel{installation_cups::doc}{{2}{5}{Printing via CUPS and attaching files to labfolder logbooks}{chapter.2}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {3}Groups, ownership and sharing in labfolder}{11}{chapter.3}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{import_export::doc}{{3}{7}{Import and export of projects and entries}{chapter.3}{}}
-\newlabel{import_export:import-and-export-of-projects-and-entries}{{3}{7}{Import and export of projects and entries}{chapter.3}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.1}Import}{7}{section.3.1}}
-\newlabel{import_export:import}{{3.1}{7}{Import}{section.3.1}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.2}Export}{7}{section.3.2}}
-\newlabel{import_export:export}{{3.2}{7}{Export}{section.3.2}{}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {4}Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{9}{chapter.4}}
+\newlabel{groups:groups-ownership-and-sharing-in-labfolder}{{3}{11}{Groups, ownership and sharing in labfolder}{chapter.3}{}}
+\newlabel{groups::doc}{{3}{11}{Groups, ownership and sharing in labfolder}{chapter.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.1}Private projects}{11}{section.3.1}}
+\newlabel{groups:private-projects}{{3.1}{11}{Private projects}{section.3.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.2}Group projects}{11}{section.3.2}}
+\newlabel{groups:group-projects}{{3.2}{11}{Group projects}{section.3.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.3}Group settings}{12}{section.3.3}}
+\newlabel{groups:group-settings}{{3.3}{12}{Group settings}{section.3.3}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {4}Import and export of projects and entries}{13}{chapter.4}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{importing_from_elog:importing-projects-from-e-g-the-elogbook-to-labfolder-at-the-fhi}{{4}{9}{Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{chapter.4}{}}
-\newlabel{importing_from_elog::doc}{{4}{9}{Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{chapter.4}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.1}Using python to import from ELOG to labfolder}{10}{section.4.1}}
-\newlabel{importing_from_elog:using-python-to-import-from-elog-to-labfolder}{{4.1}{10}{Using python to import from ELOG to labfolder}{section.4.1}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {4.2}Alternatives to the manipulating the labfolder DB on MySQL level}{10}{section.4.2}}
-\newlabel{importing_from_elog:alternatives-to-the-manipulating-the-labfolder-db-on-mysql-level}{{4.2}{10}{Alternatives to the manipulating the labfolder DB on MySQL level}{section.4.2}{}}
+\newlabel{import_export::doc}{{4}{13}{Import and export of projects and entries}{chapter.4}{}}
+\newlabel{import_export:import-and-export-of-projects-and-entries}{{4}{13}{Import and export of projects and entries}{chapter.4}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.1}Import}{13}{section.4.1}}
+\newlabel{import_export:import}{{4.1}{13}{Import}{section.4.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.2}Export}{13}{section.4.2}}
+\newlabel{import_export:export}{{4.2}{13}{Export}{section.4.2}{}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {5}Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{15}{chapter.5}}
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\newlabel{importing_from_elog:importing-projects-from-e-g-the-elogbook-to-labfolder-at-the-fhi}{{5}{15}{Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{chapter.5}{}}
+\newlabel{importing_from_elog::doc}{{5}{15}{Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{chapter.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.1}Using python to import from ELOG to labfolder}{16}{section.5.1}}
+\newlabel{importing_from_elog:using-python-to-import-from-elog-to-labfolder}{{5.1}{16}{Using python to import from ELOG to labfolder}{section.5.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.2}Alternatives to manipulating the labfolder DB on MySQL level}{16}{section.5.2}}
+\newlabel{importing_from_elog:alternatives-to-manipulating-the-labfolder-db-on-mysql-level}{{5.2}{16}{Alternatives to manipulating the labfolder DB on MySQL level}{section.5.2}{}}
--- a/elog2labfolder/_build/latex/elog2labfolder.fdb_latexmk	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/_build/latex/elog2labfolder.fdb_latexmk	Wed Feb 07 16:53:37 2018 +0100
@@ -1,16 +1,21 @@
 # Fdb version 3
-["makeindex elog2labfolder.idx"] 1515425753 "elog2labfolder.idx" "elog2labfolder.ind" "elog2labfolder" 1517845737
-  "elog2labfolder.idx" 1517845737 0 d41d8cd98f00b204e9800998ecf8427e ""
+["makeindex elog2labfolder.idx"] 1515425753 "elog2labfolder.idx" "elog2labfolder.ind" "elog2labfolder" 1518018527
+  "elog2labfolder.idx" 1518018526 0 d41d8cd98f00b204e9800998ecf8427e ""
   (generated)
+  "elog2labfolder.ind"
   "elog2labfolder.ilg"
-  "elog2labfolder.ind"
-["pdflatex"] 1517845736 "elog2labfolder.tex" "elog2labfolder.pdf" "elog2labfolder" 1517845737
+["pdflatex"] 1518018526 "elog2labfolder.tex" "elog2labfolder.pdf" "elog2labfolder" 1518018527
   "/etc/texmf/web2c/texmf.cnf" 1444387830 1101 af7716885e081ab43982cab7b4672c1a ""
   "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab ""
   "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1272929888 3287 e6b82fe08f5336d4d5ebc73fb1152e87 ""
+  "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8r.tfm" 1136768653 1292 3059476c50a24578715759f22652f3d0 ""
+  "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8t.tfm" 1136768653 1384 87406e4336af44af883a035f17f319d9 ""
   "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8c.tfm" 1136768653 1268 8bd405dc5751cfed76cb6fb2db78cb50 ""
   "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm" 1136768653 1292 bd42be2f344128bff6d35d98474adfe3 ""
   "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm" 1136768653 1384 4632f5e54900a7dadbb83f555bc61e56 ""
+  "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8c.tfm" 1136768653 1344 dab2eee300fafcab19064bcc62d66daa ""
+  "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8r.tfm" 1136768653 1544 4fb84cf2931ec523c2c6a08d939088ba ""
+  "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8t.tfm" 1136768653 1596 04a657f277f0401ba37d66e716627ac4 ""
   "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8r.tfm" 1136768653 4484 b828043cbd581d289d955903c1339981 ""
   "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8t.tfm" 1136768653 6628 34c39492c0adc454c1c199922bba8363 ""
   "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvbo8r.tfm" 1136768653 4736 423eba67d4e9420ec9df4a8def143b08 ""
@@ -38,14 +43,19 @@
   "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1136768653 1124 6c73e740cf17375f03eec0ee63599741 ""
   "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb" 1248133631 37912 77d683123f92148345f3fc36a38d9ab1 ""
   "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy5.pfb" 1248133631 32915 7bf7720c61a5b3a7ff25b0964421c9b6 ""
+  "/usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb" 1136849748 50493 4ed1f7e9eba8f1f3e1ec25195460190d ""
   "/usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb" 1136849748 45758 19968a0990191524e34e1994d4a31cb6 ""
+  "/usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrro8a.pfb" 1136849748 44404 ea3d9c0311883914133975dd62a9185c ""
   "/usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb" 1136849748 35941 f27169cc74234d5bd5e4cca5abafaabb ""
   "/usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb" 1136849748 39013 b244066151b1e3e718f9b8e88a5ff23b ""
   "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1136849748 44729 811d6c62865936705a31c797a1d5dada ""
   "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 ""
   "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 ""
+  "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrb8t.vf" 1136768653 2184 5d20c8b00cd914e50251116c274e2d0b ""
   "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8c.vf" 1136768653 3552 6a7911d0b338a7c32cbfc3a9e985ccca ""
   "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf" 1136768653 2184 8475af1b9cfa983db5f46f5ed4b8f9f7 ""
+  "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8c.vf" 1136768653 3560 a297982f0907d62e9886d9e2666bf30b ""
+  "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8t.vf" 1136768653 2280 d7cd083c724c9449e1d12731253966f7 ""
   "/usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvb8t.vf" 1136768653 2340 0efed6a948c3c37d870e4e7ddb85c7c3 ""
   "/usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvbo8t.vf" 1136768653 2344 88834f8322177295b0266ecc4b0754c3 ""
   "/usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmb8t.vf" 1136768653 2340 df9c920cc5688ebbf16a93f45ce7bdd3 ""
@@ -145,11 +155,19 @@
   "/usr/share/texmf/web2c/texmf.cnf" 1503347518 31075 dbb81bd39d798acf14cc121a151f7fe7 ""
   "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1504173988 1346346 7f2b8b715a9ddb095afe3697a6ba02b5 ""
   "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1504173975 3822874 267a626ad30da090ac1f6fafe2c6c7d3 ""
-  "elog2labfolder.aux" 1517845737 4069 3189b340997aa8f1f415c69630698147 ""
+  "create_local_printer01.png" 1518017649 30366 4e72e0acf4a1ffa379700c44b7f21811 ""
+  "create_local_printer02.png" 1518017659 41588 e2ca428fb7c8df48de8c2a943056d7d9 ""
+  "create_local_printer03.png" 1518017918 65414 4510c9845f9c92a2707a4cff6a238a49 ""
+  "create_local_printer04.png" 1518017934 47802 232887d5b4ba6c4a8ebcfb853862f7fb ""
+  "create_local_printer05.png" 1518017944 36161 842755fa2893d202ee68b1564008d66e ""
+  "create_local_printer06.png" 1518017958 35620 1e5034eb5317bdba2ba819aadd2f1b9c ""
+  "create_local_printer07.png" 1518018015 70875 37e141327592404bf769711573eb913c ""
+  "cups_print_operating.png" 1518017171 66271 4a788ad6fce0104f7edab7ca90960639 ""
+  "elog2labfolder.aux" 1518018527 4571 eece79ecca3118525b3003008bc7c863 ""
   "elog2labfolder.ind" 1515658418 0 d41d8cd98f00b204e9800998ecf8427e "makeindex elog2labfolder.idx"
-  "elog2labfolder.out" 1517845737 2368 feb2bf4011300fa0c9c5d0da89b2c151 ""
-  "elog2labfolder.tex" 1517845736 20434 9e7a2898bcb46fe2a8a7c7d9bdb87a92 ""
-  "elog2labfolder.toc" 1517845737 1000 8a5cc35973a7807d1e1ed66f87145f6d ""
+  "elog2labfolder.out" 1518018527 2708 65715dea9babb09bc1e19f98a58cc065 ""
+  "elog2labfolder.tex" 1518018525 30710 ef687efa1422e6600d548e45d357d97e ""
+  "elog2labfolder.toc" 1518018527 1118 c8ccc8f569c4625afd9dcc2931c996cf ""
   "elog_entry.png" 1515666304 32578 2c2af6c7a27a977bff0584bf2eb5b99e ""
   "entry_after_import.png" 1515669498 25489 640d3c2545e24da42d28bc8e45d3546d ""
   "export_of_projects.png" 1515658418 71687 08fe1d9c71553d6c84baf749a96cca4e ""
@@ -159,13 +177,13 @@
   "group_settings.png" 1515658418 25681 87db44875d57bfe6a28d581928155a35 ""
   "private_projects.png" 1515658418 30377 1ba519cb43ea7403e53a7245f8e1a148 ""
   "sphinx.sty" 1515658418 64257 27389b3f9c27254b2f20d236bdb2ebcf ""
-  "sphinxhighlight.sty" 1517845736 8137 b8d4ef963833564f6e4eadc09cd757c4 ""
+  "sphinxhighlight.sty" 1518018525 8137 b8d4ef963833564f6e4eadc09cd757c4 ""
   "sphinxmanual.cls" 1515658418 3589 0b0aac49c6f36925cf5f9d524a75a978 ""
   "sphinxmulticell.sty" 1515658418 14618 0defbdc8536ad2e67f1eac6a1431bc55 ""
   (generated)
+  "elog2labfolder.log"
+  "elog2labfolder.idx"
+  "elog2labfolder.aux"
   "elog2labfolder.toc"
-  "elog2labfolder.aux"
   "elog2labfolder.pdf"
-  "elog2labfolder.idx"
-  "elog2labfolder.log"
   "elog2labfolder.out"
--- a/elog2labfolder/_build/latex/elog2labfolder.fls	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/_build/latex/elog2labfolder.fls	Wed Feb 07 16:53:37 2018 +0100
@@ -269,6 +269,41 @@
 INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf
 INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm
 INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8c.vf
+INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm
+INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8t.tfm
+INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8c.tfm
+INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8t.tfm
+INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf
+INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm
+INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8t.vf
+INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8r.tfm
+INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8c.vf
+INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrb8t.vf
+INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8r.tfm
+INPUT cups_print_operating.png
+INPUT ./cups_print_operating.png
+INPUT ./cups_print_operating.png
+INPUT create_local_printer01.png
+INPUT ./create_local_printer01.png
+INPUT ./create_local_printer01.png
+INPUT create_local_printer02.png
+INPUT ./create_local_printer02.png
+INPUT ./create_local_printer02.png
+INPUT create_local_printer03.png
+INPUT ./create_local_printer03.png
+INPUT ./create_local_printer03.png
+INPUT create_local_printer04.png
+INPUT ./create_local_printer04.png
+INPUT ./create_local_printer04.png
+INPUT create_local_printer05.png
+INPUT ./create_local_printer05.png
+INPUT ./create_local_printer05.png
+INPUT create_local_printer06.png
+INPUT ./create_local_printer06.png
+INPUT ./create_local_printer06.png
+INPUT create_local_printer07.png
+INPUT ./create_local_printer07.png
+INPUT ./create_local_printer07.png
 INPUT private_projects.png
 INPUT ./private_projects.png
 INPUT ./private_projects.png
@@ -288,9 +323,6 @@
 INPUT export_xhtml.png
 INPUT ./export_xhtml.png
 INPUT ./export_xhtml.png
-INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm
-INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf
-INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm
 INPUT elog_entry.png
 INPUT ./elog_entry.png
 INPUT ./elog_entry.png
@@ -305,7 +337,9 @@
 INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc
 INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb
 INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy5.pfb
+INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb
 INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb
+INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrro8a.pfb
 INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb
 INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb
 INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb
--- a/elog2labfolder/_build/latex/elog2labfolder.log	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/_build/latex/elog2labfolder.log	Wed Feb 07 16:53:37 2018 +0100
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2017.8.31)  5 FEB 2018 16:48
+This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2017.8.31)  7 FEB 2018 16:48
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -1055,96 +1055,166 @@
 
 ]
 Chapter 2.
-<private_projects.png, id=107, 719.68875pt x 251.94125pt>
+LaTeX Font Info:    Font shape `T1/pcr/m/it' in size <9> not available
+(Font)              Font shape `T1/pcr/m/sl' tried instead on input line 214.
+LaTeX Font Info:    Font shape `TS1/pcr/m/it' in size <9> not available
+(Font)              Font shape `TS1/pcr/m/sl' tried instead on input line 221.
+LaTeX Font Info:    Font shape `T1/pcr/bx/n' in size <9> not available
+(Font)              Font shape `T1/pcr/b/n' tried instead on input line 227.
+
+Overfull \vbox (0.56996pt too high) detected at line 291
+ []
+
+[5] [6] <cups_print_operating.png, id=122, 1476.51625pt x 690.58pt>
+File: cups_print_operating.png Graphic file (type png)
+
+<use cups_print_operating.png>
+Package pdftex.def Info: cups_print_operating.png used on input line 318.
+(pdftex.def)             Requested size: 469.75502pt x 219.70454pt.
+
+<create_local_printer01.png, id=124, 728.7225pt x 377.41pt>
+File: create_local_printer01.png Graphic file (type png)
+
+<use create_local_printer01.png>
+Package pdftex.def Info: create_local_printer01.png used on input line 344.
+(pdftex.def)             Requested size: 328.82707pt x 170.2994pt.
+
+<create_local_printer02.png, id=125, 746.79pt x 593.21625pt>
+File: create_local_printer02.png Graphic file (type png)
+
+<use create_local_printer02.png>
+Package pdftex.def Info: create_local_printer02.png used on input line 346.
+(pdftex.def)             Requested size: 328.82707pt x 261.20604pt.
+ [7 <./cups_print_operating.png> <./create_local_printer01.png>] <create_local_
+printer03.png, id=132, 745.78625pt x 594.22pt>
+File: create_local_printer03.png Graphic file (type png)
+
+<use create_local_printer03.png>
+Package pdftex.def Info: create_local_printer03.png used on input line 348.
+(pdftex.def)             Requested size: 328.82707pt x 261.99257pt.
+
+<create_local_printer04.png, id=133, 741.77126pt x 590.205pt>
+File: create_local_printer04.png Graphic file (type png)
+
+<use create_local_printer04.png>
+Package pdftex.def Info: create_local_printer04.png used on input line 350.
+(pdftex.def)             Requested size: 328.82707pt x 261.63625pt.
+ [8 <./create_local_printer02.png> <./create_local_printer03.png>]
+<create_local_printer05.png, id=140, 743.77875pt x 590.205pt>
+File: create_local_printer05.png Graphic file (type png)
+
+<use create_local_printer05.png>
+Package pdftex.def Info: create_local_printer05.png used on input line 352.
+(pdftex.def)             Requested size: 328.82707pt x 260.93379pt.
+
+<create_local_printer06.png, id=141, 744.7825pt x 591.20876pt>
+File: create_local_printer06.png Graphic file (type png)
+
+<use create_local_printer06.png>
+Package pdftex.def Info: create_local_printer06.png used on input line 354.
+(pdftex.def)             Requested size: 328.82707pt x 261.02574pt.
+ [9 <./create_local_printer04.png> <./create_local_printer05.png>]
+<create_local_printer07.png, id=149, 729.72626pt x 794.97pt>
+File: create_local_printer07.png Graphic file (type png)
+
+<use create_local_printer07.png>
+Package pdftex.def Info: create_local_printer07.png used on input line 356.
+(pdftex.def)             Requested size: 328.82707pt x 358.2184pt.
+ [10 <./create_local_printer06.png> <./create_local_printer07.png>]
+Chapter 3.
+<private_projects.png, id=156, 719.68875pt x 251.94125pt>
 File: private_projects.png Graphic file (type png)
 
 <use private_projects.png>
-Package pdftex.def Info: private_projects.png used on input line 210.
+Package pdftex.def Info: private_projects.png used on input line 368.
 (pdftex.def)             Requested size: 328.82707pt x 115.11398pt.
-LaTeX Font Info:    Try loading font information for TS1+ptm on input line 219.
+LaTeX Font Info:    Try loading font information for TS1+ptm on input line 377.
 
 
 (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd
 File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm.
-) [5 <./private_projects.png>] <group_settings.png, id=114, 622.325pt x 400.496
-25pt>
+) [11
+
+ <./private_projects.png>] <group_settings.png, id=162, 622.325pt x 400.49625pt
+>
 File: group_settings.png Graphic file (type png)
 
 <use group_settings.png>
-Package pdftex.def Info: group_settings.png used on input line 244.
+Package pdftex.def Info: group_settings.png used on input line 402.
 (pdftex.def)             Requested size: 328.82707pt x 211.61423pt.
- [6 <./group_settings.png>]
-Chapter 3.
-<export_of_projects.png, id=122, 608.2725pt x 332.24126pt>
+ [12 <./group_settings.png>]
+Chapter 4.
+<export_of_projects.png, id=170, 608.2725pt x 332.24126pt>
 File: export_of_projects.png Graphic file (type png)
 
 <use export_of_projects.png>
-Package pdftex.def Info: export_of_projects.png used on input line 277.
+Package pdftex.def Info: export_of_projects.png used on input line 435.
 (pdftex.def)             Requested size: 328.82707pt x 179.61038pt.
 
-<export_of_projects2.png, id=123, 731.73375pt x 201.75375pt>
+<export_of_projects2.png, id=171, 731.73375pt x 201.75375pt>
 File: export_of_projects2.png Graphic file (type png)
 
 <use export_of_projects2.png>
-Package pdftex.def Info: export_of_projects2.png used on input line 281.
+Package pdftex.def Info: export_of_projects2.png used on input line 439.
 (pdftex.def)             Requested size: 328.82707pt x 90.66519pt.
- [7
+ [13
 
  <./export_of_projects.png>]
-<export_xhtml.png, id=129, 450.68375pt x 107.40125pt>
+<export_xhtml.png, id=178, 450.68375pt x 107.40125pt>
 File: export_xhtml.png Graphic file (type png)
  <use export_xhtml.png>
-Package pdftex.def Info: export_xhtml.png used on input line 285.
+Package pdftex.def Info: export_xhtml.png used on input line 443.
 (pdftex.def)             Requested size: 328.82707pt x 78.3662pt.
 
-[8 <./export_of_projects2.png> <./export_xhtml.png>]
-Chapter 4.
-<elog_entry.png, id=136, 1261.71375pt x 236.885pt>
+[14 <./export_of_projects2.png> <./export_xhtml.png>]
+Chapter 5.
+<elog_entry.png, id=185, 1261.71375pt x 236.885pt>
 File: elog_entry.png Graphic file (type png)
  <use elog_entry.png>
-Package pdftex.def Info: elog_entry.png used on input line 315.
+Package pdftex.def Info: elog_entry.png used on input line 473.
 (pdftex.def)             Requested size: 469.75502pt x 88.19548pt.
 
-<entry_after_import.png, id=137, 742.775pt x 191.71625pt>
+<entry_after_import.png, id=186, 742.775pt x 191.71625pt>
 File: entry_after_import.png Graphic file (type png)
 
 <use entry_after_import.png>
-Package pdftex.def Info: entry_after_import.png used on input line 321.
+Package pdftex.def Info: entry_after_import.png used on input line 479.
 (pdftex.def)             Requested size: 469.75502pt x 121.24992pt.
- [9
-
- <./elog_entry.png>] (./elog2labfolder.ind)
-Package atveryend Info: Empty hook `BeforeClearDocument' on input line 362.
+ [15
 
-[10 <./entry_after_import.png>]
-Package atveryend Info: Empty hook `AfterLastShipout' on input line 362.
+ <./elog_entry.png>] [16 <./entry_after_import.png>] (./elog2labfolder.ind)
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 526.
+ [17]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 526.
  (./elog2labfolder.aux)
-Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 362.
-Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 362.
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 526.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 526.
 Package rerunfilecheck Info: File `elog2labfolder.out' has not changed.
-(rerunfilecheck)             Checksum: FEB2BF4011300FA0C9C5D0DA89B2C151;2368.
-Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 362.
+(rerunfilecheck)             Checksum: 65715DEA9BABB09BC1E19F98A58CC065;2708.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 526.
  ) 
 Here is how much of TeX's memory you used:
- 13418 strings out of 493304
- 186066 string characters out of 6139871
- 298379 words of memory out of 5000000
- 16550 multiletter control sequences out of 15000+600000
- 44699 words of font info for 65 fonts, out of 8000000 for 9000
+ 13482 strings out of 493304
+ 187560 string characters out of 6139871
+ 317550 words of memory out of 5000000
+ 16591 multiletter control sequences out of 15000+600000
+ 46369 words of font info for 70 fonts, out of 8000000 for 9000
  958 hyphenation exceptions out of 8191
- 37i,12n,49p,795b,470s stack positions out of 5000i,500n,10000p,200000b,80000s
+ 37i,12n,49p,1094b,470s stack positions out of 5000i,500n,10000p,200000b,80000s
 {/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texliv
 e/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/share/texlive/texmf
 -dist/fonts/type1/public/amsfonts/cm/cmsy5.pfb></usr/share/texlive/texmf-dist/f
-onts/type1/urw/courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/ur
-w/helvetic/uhvb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/u
-hvbo8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></us
-r/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/share/texlive
-/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
-Output written on elog2labfolder.pdf (14 pages, 290536 bytes).
+onts/type1/urw/courier/ucrb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/ur
+w/courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucr
+ro8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb></u
+sr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb></usr/share/te
+xlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dis
+t/fonts/type1/urw/times/utmr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/u
+rw/times/utmri8a.pfb>
+Output written on elog2labfolder.pdf (21 pages, 639722 bytes).
 PDF statistics:
- 186 PDF objects out of 1000 (max. 8388607)
- 141 compressed objects within 2 object streams
- 26 named destinations out of 1000 (max. 500000)
- 144 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 245 PDF objects out of 1000 (max. 8388607)
+ 175 compressed objects within 2 object streams
+ 34 named destinations out of 1000 (max. 500000)
+ 192 words of extra memory for PDF output out of 10000 (max. 10000000)
 
--- a/elog2labfolder/_build/latex/elog2labfolder.out	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/_build/latex/elog2labfolder.out	Wed Feb 07 16:53:37 2018 +0100
@@ -1,11 +1,12 @@
 \BOOKMARK [0][-]{chapter.1}{\376\377\000I\000n\000s\000t\000a\000l\000l\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r}{}% 1
-\BOOKMARK [0][-]{chapter.2}{\376\377\000G\000r\000o\000u\000p\000s\000,\000\040\000o\000w\000n\000e\000r\000s\000h\000i\000p\000\040\000a\000n\000d\000\040\000s\000h\000a\000r\000i\000n\000g\000\040\000i\000n\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r}{}% 2
-\BOOKMARK [1][-]{section.2.1}{\376\377\000P\000r\000i\000v\000a\000t\000e\000\040\000p\000r\000o\000j\000e\000c\000t\000s}{chapter.2}% 3
-\BOOKMARK [1][-]{section.2.2}{\376\377\000G\000r\000o\000u\000p\000\040\000p\000r\000o\000j\000e\000c\000t\000s}{chapter.2}% 4
-\BOOKMARK [1][-]{section.2.3}{\376\377\000G\000r\000o\000u\000p\000\040\000s\000e\000t\000t\000i\000n\000g\000s}{chapter.2}% 5
-\BOOKMARK [0][-]{chapter.3}{\376\377\000I\000m\000p\000o\000r\000t\000\040\000a\000n\000d\000\040\000e\000x\000p\000o\000r\000t\000\040\000o\000f\000\040\000p\000r\000o\000j\000e\000c\000t\000s\000\040\000a\000n\000d\000\040\000e\000n\000t\000r\000i\000e\000s}{}% 6
-\BOOKMARK [1][-]{section.3.1}{\376\377\000I\000m\000p\000o\000r\000t}{chapter.3}% 7
-\BOOKMARK [1][-]{section.3.2}{\376\377\000E\000x\000p\000o\000r\000t}{chapter.3}% 8
-\BOOKMARK [0][-]{chapter.4}{\376\377\000I\000m\000p\000o\000r\000t\000i\000n\000g\000\040\000p\000r\000o\000j\000e\000c\000t\000s\000\040\000f\000r\000o\000m\000\040\000e\000.\000g\000.\000\040\000t\000h\000e\000\040\000E\000L\000O\000G\000b\000o\000o\000k\000\040\000t\000o\000\040\000L\000a\000b\000f\000o\000l\000d\000e\000r\000\040\000a\000t\000\040\000t\000h\000e\000\040\000F\000H\000I}{}% 9
-\BOOKMARK [1][-]{section.4.1}{\376\377\000U\000s\000i\000n\000g\000\040\000p\000y\000t\000h\000o\000n\000\040\000t\000o\000\040\000i\000m\000p\000o\000r\000t\000\040\000f\000r\000o\000m\000\040\000E\000L\000O\000G\000\040\000t\000o\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r}{chapter.4}% 10
-\BOOKMARK [1][-]{section.4.2}{\376\377\000A\000l\000t\000e\000r\000n\000a\000t\000i\000v\000e\000s\000\040\000t\000o\000\040\000t\000h\000e\000\040\000m\000a\000n\000i\000p\000u\000l\000a\000t\000i\000n\000g\000\040\000t\000h\000e\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r\000\040\000D\000B\000\040\000o\000n\000\040\000M\000y\000S\000Q\000L\000\040\000l\000e\000v\000e\000l}{chapter.4}% 11
+\BOOKMARK [0][-]{chapter.2}{\376\377\000P\000r\000i\000n\000t\000i\000n\000g\000\040\000v\000i\000a\000\040\000C\000U\000P\000S\000\040\000a\000n\000d\000\040\000a\000t\000t\000a\000c\000h\000i\000n\000g\000\040\000f\000i\000l\000e\000s\000\040\000t\000o\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r\000\040\000l\000o\000g\000b\000o\000o\000k\000s}{}% 2
+\BOOKMARK [0][-]{chapter.3}{\376\377\000G\000r\000o\000u\000p\000s\000,\000\040\000o\000w\000n\000e\000r\000s\000h\000i\000p\000\040\000a\000n\000d\000\040\000s\000h\000a\000r\000i\000n\000g\000\040\000i\000n\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r}{}% 3
+\BOOKMARK [1][-]{section.3.1}{\376\377\000P\000r\000i\000v\000a\000t\000e\000\040\000p\000r\000o\000j\000e\000c\000t\000s}{chapter.3}% 4
+\BOOKMARK [1][-]{section.3.2}{\376\377\000G\000r\000o\000u\000p\000\040\000p\000r\000o\000j\000e\000c\000t\000s}{chapter.3}% 5
+\BOOKMARK [1][-]{section.3.3}{\376\377\000G\000r\000o\000u\000p\000\040\000s\000e\000t\000t\000i\000n\000g\000s}{chapter.3}% 6
+\BOOKMARK [0][-]{chapter.4}{\376\377\000I\000m\000p\000o\000r\000t\000\040\000a\000n\000d\000\040\000e\000x\000p\000o\000r\000t\000\040\000o\000f\000\040\000p\000r\000o\000j\000e\000c\000t\000s\000\040\000a\000n\000d\000\040\000e\000n\000t\000r\000i\000e\000s}{}% 7
+\BOOKMARK [1][-]{section.4.1}{\376\377\000I\000m\000p\000o\000r\000t}{chapter.4}% 8
+\BOOKMARK [1][-]{section.4.2}{\376\377\000E\000x\000p\000o\000r\000t}{chapter.4}% 9
+\BOOKMARK [0][-]{chapter.5}{\376\377\000I\000m\000p\000o\000r\000t\000i\000n\000g\000\040\000p\000r\000o\000j\000e\000c\000t\000s\000\040\000f\000r\000o\000m\000\040\000e\000.\000g\000.\000\040\000t\000h\000e\000\040\000E\000L\000O\000G\000b\000o\000o\000k\000\040\000t\000o\000\040\000L\000a\000b\000f\000o\000l\000d\000e\000r\000\040\000a\000t\000\040\000t\000h\000e\000\040\000F\000H\000I}{}% 10
+\BOOKMARK [1][-]{section.5.1}{\376\377\000U\000s\000i\000n\000g\000\040\000p\000y\000t\000h\000o\000n\000\040\000t\000o\000\040\000i\000m\000p\000o\000r\000t\000\040\000f\000r\000o\000m\000\040\000E\000L\000O\000G\000\040\000t\000o\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r}{chapter.5}% 11
+\BOOKMARK [1][-]{section.5.2}{\376\377\000A\000l\000t\000e\000r\000n\000a\000t\000i\000v\000e\000s\000\040\000t\000o\000\040\000m\000a\000n\000i\000p\000u\000l\000a\000t\000i\000n\000g\000\040\000t\000h\000e\000\040\000l\000a\000b\000f\000o\000l\000d\000e\000r\000\040\000D\000B\000\040\000o\000n\000\040\000M\000y\000S\000Q\000L\000\040\000l\000e\000v\000e\000l}{chapter.5}% 12
Binary file elog2labfolder/_build/latex/elog2labfolder.pdf has changed
--- a/elog2labfolder/_build/latex/elog2labfolder.tex	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/_build/latex/elog2labfolder.tex	Wed Feb 07 16:53:37 2018 +0100
@@ -55,7 +55,7 @@
 
 
 \title{Labfolder at FHI Documentation}
-\date{Feb 05, 2018}
+\date{Feb 07, 2018}
 \release{1.0}
 \author{Stefan Weiher}
 \newcommand{\sphinxlogo}{\vbox{}}
@@ -198,6 +198,164 @@
 \end{sphinxVerbatim}
 
 
+\chapter{Printing via CUPS and attaching files to labfolder logbooks}
+\label{\detokenize{installation_cups:printing-via-cups-and-attaching-files-to-labfolder-logbooks}}\label{\detokenize{installation_cups::doc}}
+If you want to print a webpage as PDF and send it to onf of labfolder’s logbooks you could create a CUPS printer for each logbook that uses the labfolder API to attach this PDF to a newly created entry. First, you need to install CUPS on the virtual machine that runs labfolder:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+\PYG{n}{sudo} \PYG{n}{apt}\PYG{o}{\PYGZhy{}}\PYG{n}{get} \PYG{n}{install} \PYG{n}{cups} \PYG{n}{cups}\PYG{o}{\PYGZhy{}}\PYG{n}{client} \PYG{n}{cups}\PYG{o}{\PYGZhy{}}\PYG{n}{bsd}
+\end{sphinxVerbatim}
+
+Next, you need to configure \sphinxcode{/etc/cups/cupsd.conf}. This is how it looks like on \sphinxstyleemphasis{lftest}:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+\PYG{c+c1}{\PYGZsh{} Sample configuration file for the CUPS scheduler.  See \PYGZdq{}man cupsd.conf\PYGZdq{} for a}
+\PYG{c+c1}{\PYGZsh{} complete description of this file.}
+
+\PYG{c+c1}{\PYGZsh{} Log general information in error\PYGZus{}log \PYGZhy{} change \PYGZdq{}warn\PYGZdq{} to \PYGZdq{}debug\PYGZdq{}}
+\PYG{c+c1}{\PYGZsh{} for troubleshooting...}
+\PYG{n}{LogLevel} \PYG{n}{debug}
+
+\PYG{c+c1}{\PYGZsh{} Deactivate CUPS\PYGZsq{} internal logrotating, as we provide a better one, especially}
+\PYG{c+c1}{\PYGZsh{} LogLevel debug2 gets usable now}
+\PYG{n}{MaxLogSize} \PYG{l+m+mi}{0}
+
+\PYG{c+c1}{\PYGZsh{} Administrator user group...}
+\PYG{n}{SystemGroup} \PYG{n}{lpadmin}
+\PYG{n}{ServerAdmin} \PYG{n}{weiher}\PYG{n+nd}{@fhi}\PYG{o}{\PYGZhy{}}\PYG{n}{berlin}\PYG{o}{.}\PYG{n}{mpg}\PYG{o}{.}\PYG{n}{de}
+
+\PYG{n}{HostNameLookups} \PYG{n}{On}
+\PYG{n}{ServerAlias} \PYG{o}{*}
+
+\PYG{c+c1}{\PYGZsh{} Only listen for connections from the local machine.}
+\PYG{n}{Listen} \PYG{n}{lftest}\PYG{o}{.}\PYG{n}{rz}\PYG{o}{\PYGZhy{}}\PYG{n}{berlin}\PYG{o}{.}\PYG{n}{mpg}\PYG{o}{.}\PYG{n}{de}\PYG{p}{:}\PYG{l+m+mi}{631}
+\PYG{n}{Listen} \PYG{o}{/}\PYG{n}{var}\PYG{o}{/}\PYG{n}{run}\PYG{o}{/}\PYG{n}{cups}\PYG{o}{/}\PYG{n}{cups}\PYG{o}{.}\PYG{n}{sock}
+
+\PYG{c+c1}{\PYGZsh{} Show shared printers on the local network.}
+\PYG{n}{Browsing} \PYG{n}{Off}
+\PYG{n}{BrowseOrder} \PYG{n}{allow}\PYG{p}{,}\PYG{n}{deny}
+\PYG{n}{BrowseAllow} \PYG{n+nb}{all}
+\PYG{n}{BrowseLocalProtocols} \PYG{n}{CUPS} \PYG{n}{dnssd}
+\PYG{n}{BrowseAddress} \PYG{n+nd}{@LOCAL}
+
+\PYG{c+c1}{\PYGZsh{} Default authentication type, when authentication is required...}
+\PYG{n}{DefaultAuthType} \PYG{n}{Basic}
+
+\PYG{c+c1}{\PYGZsh{} Web interface setting...}
+\PYG{n}{WebInterface} \PYG{n}{Yes}
+
+\PYG{c+c1}{\PYGZsh{} Restrict access to the server...}
+\PYG{o}{\PYGZlt{}}\PYG{n}{Location} \PYG{o}{/}\PYG{o}{\PYGZgt{}}
+  \PYG{n}{Satisfy} \PYG{n}{All}
+  \PYG{n}{Allow} \PYG{n}{localhost}
+  \PYG{n}{Allow} \PYG{l+m+mf}{141.14}\PYG{o}{.}\PYG{o}{*}
+  \PYG{n}{Allow} \PYG{l+m+mf}{172.16}\PYG{o}{.}\PYG{o}{*}
+  \PYG{n}{Allow} \PYG{l+m+mf}{192.}\PYG{o}{*}
+  \PYG{n}{Allow} \PYG{n+nb}{all}
+  \PYG{c+c1}{\PYGZsh{} Allow shared printing and remote administration...}
+  \PYG{n}{Order} \PYG{n}{allow}\PYG{p}{,}\PYG{n}{deny}
+  \PYG{n}{Allow} \PYG{n+nb}{all}
+\PYG{o}{\PYGZlt{}}\PYG{o}{/}\PYG{n}{Location}\PYG{o}{\PYGZgt{}}
+
+\PYG{c+c1}{\PYGZsh{} Restrict access to the admin pages...}
+\PYG{o}{\PYGZlt{}}\PYG{n}{Location} \PYG{o}{/}\PYG{n}{admin}\PYG{o}{\PYGZgt{}}
+  \PYG{n}{Order} \PYG{n}{deny}\PYG{p}{,}\PYG{n}{allow}
+  \PYG{n}{Satisfy} \PYG{n}{All}
+  \PYG{n}{AuthType} \PYG{n}{Basic}
+  \PYG{n}{Require} \PYG{n}{user} \PYG{n+nd}{@SYSTEM}
+  \PYG{n}{Deny} \PYG{n}{All}
+  \PYG{n}{Allow} \PYG{n}{localhost}
+  \PYG{n}{Allow} \PYG{l+m+mf}{141.14}\PYG{o}{.}\PYG{o}{*}
+  \PYG{n}{Allow} \PYG{l+m+mf}{172.16}\PYG{o}{.}\PYG{o}{*}
+\PYG{o}{\PYGZlt{}}\PYG{o}{/}\PYG{n}{Location}\PYG{o}{\PYGZgt{}}
+
+\PYG{c+c1}{\PYGZsh{} Restrict access to configuration files...}
+\PYG{o}{\PYGZlt{}}\PYG{n}{Location} \PYG{o}{/}\PYG{n}{admin}\PYG{o}{/}\PYG{n}{conf}\PYG{o}{\PYGZgt{}}
+  \PYG{n}{Order} \PYG{n}{deny}\PYG{p}{,}\PYG{n}{allow}
+  \PYG{n}{AuthType} \PYG{n}{Default}
+  \PYG{n}{Require} \PYG{n}{user} \PYG{n+nd}{@SYSTEM}
+  \PYG{n}{Satisfy} \PYG{n}{All}
+  \PYG{n}{Require} \PYG{n}{user} \PYG{n}{root}
+  \PYG{n}{Deny} \PYG{n}{All}
+  \PYG{n}{Allow} \PYG{l+m+mf}{127.0}\PYG{o}{.}\PYG{l+m+mf}{0.1}
+  \PYG{n}{Allow} \PYG{l+m+mf}{141.14}\PYG{o}{.}\PYG{o}{*}
+  \PYG{n}{Allow} \PYG{l+m+mf}{172.16}\PYG{o}{.}\PYG{o}{*}
+\PYG{o}{\PYGZlt{}}\PYG{o}{/}\PYG{n}{Location}\PYG{o}{\PYGZgt{}}
+
+\PYG{c+c1}{\PYGZsh{} Set the default printer/job policies...}
+\PYG{o}{\PYGZlt{}}\PYG{n}{Policy} \PYG{n}{default}\PYG{o}{\PYGZgt{}}
+  \PYG{o}{.}\PYG{o}{.}\PYG{o}{.} \PYG{c+c1}{\PYGZsh{} probably as in the original}
+\PYG{o}{\PYGZlt{}}\PYG{o}{/}\PYG{n}{Policy}\PYG{o}{\PYGZgt{}}
+\end{sphinxVerbatim}
+
+Now, you need to create a file system that will hold all CUPS printers, For example, the printers belonging to the logbooks \sphinxstyleemphasis{FEL/operating} and \sphinxstyleemphasis{FEL/installation} could be put in \sphinxcode{/usr/local/labfolder/printers/FEL}. Copy the lplisten script from the git repository \sphinxcode{https://github.molgen.mpg.de/weiher/elog2labfolder.git} to \sphinxcode{/usr/local/labfolder/printers/FEL/operating} and to \sphinxcode{.../FEL/installation}. Also, create a pipe that redirects the printer input to the lplisten script:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+/usr/local/labfolder/printers/FEL/operating\PYGZdl{} mkfifo prnt
+\end{sphinxVerbatim}
+
+Adapt rights and ownership of lplisten and prnt:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+\PYGZdl{} chmod 744 lplisten
+\PYGZdl{} chmod 666 prnt
+\PYGZdl{} chown lp:lpadmin lplisten prnt
+\end{sphinxVerbatim}
+
+Add the labfolder user to the lpadmin group in /etc/group:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+\PYG{n}{lpadmin}\PYG{p}{:}\PYG{n}{x}\PYG{p}{:}\PYG{l+m+mi}{115}\PYG{p}{:}\PYG{n}{labfolder}
+\end{sphinxVerbatim}
+
+Now, create the CUPS printers via the web interface at \sphinxcode{http://lftest.rz-berlin.mpg.de:631/} (as configured in cupsd.conf). For example, the \sphinxstyleemphasis{operating} printer points at \sphinxcode{FEL/operating/prnt}. The ready configured printer looks like this in the web interface:
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=1.000\linewidth]{{cups_print_operating}.png}\hspace*{\fill}}
+
+To prevent \sphinxcode{DENIED} errors from apparmor install and set the following:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+\PYG{n}{sudo} \PYG{n}{apt}\PYG{o}{\PYGZhy{}}\PYG{n}{get} \PYG{n}{install} \PYG{n}{apparmor}\PYG{o}{\PYGZhy{}}\PYG{n}{utils} \PYG{n}{apparmor}\PYG{o}{\PYGZhy{}}\PYG{n}{profiles}
+\PYG{n}{sudo} \PYG{n}{aa}\PYG{o}{\PYGZhy{}}\PYG{n}{complain} \PYG{n}{cupsd}
+\end{sphinxVerbatim}
+
+Restart the CUPS server:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+\PYGZdl{} service cupsd restart
+\end{sphinxVerbatim}
+
+Start the lplisten script in the background:
+
+\fvset{hllines={, ,}}%
+\begin{sphinxVerbatim}[commandchars=\\\{\}]
+/usr/local/labfolder/printers/FEL/operating\PYGZdl{} ./lplisten \PYGZam{}
+\end{sphinxVerbatim}
+
+The last thing you need to do is to set up a printer \sphinxstyleemphasis{operating} on your local machine. In Ubuntu Gnome hit Alt+F2 keys and enter \sphinxcode{system-config-printer}. In this printer config interface add a new printer \sphinxstyleemphasis{operating} as follows:
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{create_local_printer01}.png}\hspace*{\fill}}
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{create_local_printer02}.png}\hspace*{\fill}}
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{create_local_printer03}.png}\hspace*{\fill}}
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{create_local_printer04}.png}\hspace*{\fill}}
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{create_local_printer05}.png}\hspace*{\fill}}
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{create_local_printer06}.png}\hspace*{\fill}}
+
+\noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{create_local_printer07}.png}\hspace*{\fill}}
+
+
 \chapter{Groups, ownership and sharing in labfolder}
 \label{\detokenize{groups:groups-ownership-and-sharing-in-labfolder}}\label{\detokenize{groups::doc}}
 As labfolder user you can create groups (ultimately: group projects) and private projects. In \sphinxstyleemphasis{Manage \textgreater{} Projects} you see all projects that you own and that you are a member of.
@@ -272,7 +430,7 @@
 
 \section{Export}
 \label{\detokenize{import_export:export}}
-Exporting projects (or just single entries) is possible in three different formats: PDF, XHTML and JSON. The export as PDF can be done from within a project …
+Exporting projects (or just single entries) is possible in three different formats: PDF, XHTML and JSON. The \sphinxstylestrong{export as PDF} can be done from within a project …
 
 \noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{export_of_projects}.png}\hspace*{\fill}}
 
@@ -280,13 +438,13 @@
 
 \noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{export_of_projects2}.png}\hspace*{\fill}}
 
-The XHTML export can be done via the settings:
+The \sphinxstylestrong{XHTML export} can be done via the settings:
 
 \noindent{\hspace*{\fill}\sphinxincludegraphics[width=0.700\linewidth]{{export_xhtml}.png}\hspace*{\fill}}
 
 However, to use this type of export it has to be installed first in the \sphinxstyleemphasis{Manage \textgreater{} Apps} section. By means of the XHTML export all projects that one owns will be exported. A detailled selection of projects or entries to be exported is not possible. As soon as the export process is finished a download link appears in the settings in \sphinxstyleemphasis{Data exports}. The downloadable ZIP file contains all images and files along with an index.html file that contains information about all entries. You could open and view the index.html file in a browser similar to the view in labfolder.
 
-The JSON export is only useable via the API endpoint \sphinxcode{GET /entries}. However, at the moment the response only contains useful information such as dates and tags. The author name is hidden behind the author ID and the entry text content is completely missing.
+The \sphinxstylestrong{JSON export} is only useable via the API endpoint \sphinxcode{GET /entries}. However, at the moment the response only contains useful information such as dates and tags. The author name is hidden behind the author ID and the entry text content is completely missing.
 
 
 \chapter{Importing projects from e.g. the ELOGbook to Labfolder at the FHI}
@@ -330,28 +488,34 @@
 \PYGZdl{} git clone https://github.molgen.mpg.de/weiher/elog2labfolder.git
 \end{sphinxVerbatim}
 
-The script \sphinxstyleemphasis{elog2labfolder.py} is meant to be executed from remote, that is, not on the machine on which labfolder is running. A prerequisit is the python MySQLDB package because for a few methods the labfolder API cannot be used, instead, direct manipulation of the labfolder MySQL database is needed. The actual labfolder API is applied in the methodes collected in \sphinxstyleemphasis{myPythonAPIv1.py} and \sphinxstyleemphasis{myPythonAPIv2.py}. Mostly, API version 2 is used but adding text at the end of an entry can only be accomplished by using the version 1 API call. \sphinxstyleemphasis{getListOfAuthors.py} gives you a list of all authors in a raw ELOG export file.
+The script \sphinxstyleemphasis{elog2labfolder.py} is meant to be executed from remote, that is, not on the machine on which labfolder is running. A prerequisit is the python MySQLDB package because for a few methods the labfolder API cannot be used, instead, direct manipulation of the labfolder MySQL database is needed. The actual labfolder API is applied in the methodes collected in \sphinxstyleemphasis{myPythonAPIv1.py} and \sphinxstyleemphasis{myPythonAPIv2.py}. Mostly, API version 2 is used but adding text at the end of an entry can only be accomplished by using the version 1 API call. \sphinxstyleemphasis{getListOfAuthors.py} gives you a list of all authors that are mentioned in a raw ELOG export file.
 
 
-\section{Alternatives to the manipulating the labfolder DB on MySQL level}
-\label{\detokenize{importing_from_elog:alternatives-to-the-manipulating-the-labfolder-db-on-mysql-level}}
+\section{Alternatives to manipulating the labfolder DB on MySQL level}
+\label{\detokenize{importing_from_elog:alternatives-to-manipulating-the-labfolder-db-on-mysql-level}}
 As mentioned previously: a few methods in the python API use a direct manipulation of the labfolder DB via MySQL queries. These methods are:
 \begin{itemize}
 \item {} 
-\sphinxstyleemphasis{createUserAccount(email, author, entryContent, verboseOutput, cursor, db)}: If an author of an ELOG logbook entry has not yet a labolder account this account is created on the fly by setting a default (encrypted) password. This password is irrelevant because labfolder checks the entered password with the one from the LDAP server. Note: when setting a password in the DB labfolder’s LDAP authentication needs to be disabled (FEATURE\_LDAP\_AUTHENTICATION=false) and enabled again after the setting process is finished.
+\sphinxstyleemphasis{createUserAccount(email, author, entryContent, verboseOutput, cursor, db)}: If an author of an ELOG logbook entry does not yet have a labolder account this account is created on the fly by setting a default (encrypted) password. This password is irrelevant because labfolder checks the entered password with the one from the LDAP server. Note: when setting a password in the DB labfolder’s LDAP authentication needs to be disabled (FEATURE\_LDAP\_AUTHENTICATION=false) beforehand and enabled again after the setting process is finished.
 
 \item {} 
 \sphinxstyleemphasis{updateAuthor(userID, blockID, cursor, db)}: Update the author of an entry. With the script \sphinxstyleemphasis{elog2labfolder.py} an entry is created with the author that is the person whose labfolder credentials are used to get the login token. Via this method the true author can be set to the passed in \sphinxstyleemphasis{userID}.
 
 \item {} 
-\sphinxstyleemphasis{updateDateAndTime(date, blockID, cursor, db)}: Similar to \sphinxstyleemphasis{updateAuthor()} this method sets the creation and modification date to the creation time and date of the entry to be imported. This is necessary because otherwise creation and modification date are the time and date of the import of the entry.
+\sphinxstyleemphasis{updateDateAndTime(date, blockID, cursor, db)}: Similar to \sphinxstyleemphasis{updateAuthor()} this method sets the creation and modification date to the creation time and date of the entry to be imported. This is necessary because otherwise creation and modification date in labfolder are the time and date when the import took place.
 
 \end{itemize}
 
 The labfolder support suggested the following alternative involving using the labfolder API:
 \begin{itemize}
 \item {} 
-… siehe E-Mail (gesendet) vom 15.12. …
+User account: A user account can be created via the API 2 endpoint \sphinxcode{/auth/signup}. The password will be an encrypted dummy password. In order for this to work the LDAP authentication must be turned off when this endpoint is called. After the account creation LDAP authentication should be turned on again. Once the true user of this account logs in labfolder will ignore the dummy password and check the entered password against the password stored in LDAP.
+
+\item {} 
+Author: To create a labfolder entry by using the original entry’s author needs a special work-around. \sphinxstylestrong{First, make sure to prevent labfolder users from accessing labfolder for the time of the import.} Then, manually change all user passwords in the DB to the same (encrypted) password. Switch off the LDAP authentication and restart labolder. Now, import entry by entry and get a new login token for each new entry. It is only possible to get login tokens for all users because they all have the same known password. If the author of the entry to be imported does not exist yet in the DB you need to create an account via the API 2 endpoint \sphinxcode{/auth/signup}. Now you reopen the access to the labfolder instance and switch on LDAP again restarting labfolder afterwards. The users can login using their FHI credentials no matter the “universal” password in the DB. If LDAP authentication is not turned on the users could do a password recovery on the login screen and re-set their password to their liking.
+
+\item {} 
+Date and time: Since you cannot change creation and modification time stamp of an entry via the API you could instead create custom dates during the import of an entry. The original entry creation timestamp could be “Original entry creation” followed by the creation time and date of the import. All entries can be filtered and searched by the custom dates.
 
 \end{itemize}
 
--- a/elog2labfolder/_build/latex/elog2labfolder.toc	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/_build/latex/elog2labfolder.toc	Wed Feb 07 16:53:37 2018 +0100
@@ -1,12 +1,13 @@
 \select@language {english}
 \contentsline {chapter}{\numberline {1}Installation of labfolder}{1}{chapter.1}
-\contentsline {chapter}{\numberline {2}Groups, ownership and sharing in labfolder}{5}{chapter.2}
-\contentsline {section}{\numberline {2.1}Private projects}{5}{section.2.1}
-\contentsline {section}{\numberline {2.2}Group projects}{5}{section.2.2}
-\contentsline {section}{\numberline {2.3}Group settings}{6}{section.2.3}
-\contentsline {chapter}{\numberline {3}Import and export of projects and entries}{7}{chapter.3}
-\contentsline {section}{\numberline {3.1}Import}{7}{section.3.1}
-\contentsline {section}{\numberline {3.2}Export}{7}{section.3.2}
-\contentsline {chapter}{\numberline {4}Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{9}{chapter.4}
-\contentsline {section}{\numberline {4.1}Using python to import from ELOG to labfolder}{10}{section.4.1}
-\contentsline {section}{\numberline {4.2}Alternatives to the manipulating the labfolder DB on MySQL level}{10}{section.4.2}
+\contentsline {chapter}{\numberline {2}Printing via CUPS and attaching files to labfolder logbooks}{5}{chapter.2}
+\contentsline {chapter}{\numberline {3}Groups, ownership and sharing in labfolder}{11}{chapter.3}
+\contentsline {section}{\numberline {3.1}Private projects}{11}{section.3.1}
+\contentsline {section}{\numberline {3.2}Group projects}{11}{section.3.2}
+\contentsline {section}{\numberline {3.3}Group settings}{12}{section.3.3}
+\contentsline {chapter}{\numberline {4}Import and export of projects and entries}{13}{chapter.4}
+\contentsline {section}{\numberline {4.1}Import}{13}{section.4.1}
+\contentsline {section}{\numberline {4.2}Export}{13}{section.4.2}
+\contentsline {chapter}{\numberline {5}Importing projects from e.g. the ELOGbook to Labfolder at the FHI}{15}{chapter.5}
+\contentsline {section}{\numberline {5.1}Using python to import from ELOG to labfolder}{16}{section.5.1}
+\contentsline {section}{\numberline {5.2}Alternatives to manipulating the labfolder DB on MySQL level}{16}{section.5.2}
Binary file elog2labfolder/_static/create_local_printer01.png has changed
Binary file elog2labfolder/_static/create_local_printer02.png has changed
Binary file elog2labfolder/_static/create_local_printer03.png has changed
Binary file elog2labfolder/_static/create_local_printer04.png has changed
Binary file elog2labfolder/_static/create_local_printer05.png has changed
Binary file elog2labfolder/_static/create_local_printer06.png has changed
Binary file elog2labfolder/_static/create_local_printer07.png has changed
Binary file elog2labfolder/_static/cups_print_operating.png has changed
--- a/elog2labfolder/import_export.rst	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/import_export.rst	Wed Feb 07 16:53:37 2018 +0100
@@ -13,7 +13,7 @@
 
 Export
 ------
-Exporting projects (or just single entries) is possible in three different formats: PDF, XHTML and JSON. The export as PDF can be done from within a project ...
+Exporting projects (or just single entries) is possible in three different formats: PDF, XHTML and JSON. The **export as PDF** can be done from within a project ...
 
 .. image:: _static/export_of_projects.png
    :width: 70 %
@@ -25,7 +25,7 @@
    :width: 70 %
    :align: center
 
-The XHTML export can be done via the settings:
+The **XHTML export** can be done via the settings:
 
 .. image:: _static/export_xhtml.png
    :width: 70 %
@@ -33,5 +33,5 @@
 
 However, to use this type of export it has to be installed first in the *Manage > Apps* section. By means of the XHTML export all projects that one owns will be exported. A detailled selection of projects or entries to be exported is not possible. As soon as the export process is finished a download link appears in the settings in *Data exports*. The downloadable ZIP file contains all images and files along with an index.html file that contains information about all entries. You could open and view the index.html file in a browser similar to the view in labfolder.
 
-The JSON export is only useable via the API endpoint ``GET /entries``. However, at the moment the response only contains useful information such as dates and tags. The author name is hidden behind the author ID and the entry text content is completely missing.
+The **JSON export** is only useable via the API endpoint ``GET /entries``. However, at the moment the response only contains useful information such as dates and tags. The author name is hidden behind the author ID and the entry text content is completely missing.
 
--- a/elog2labfolder/import_export.rst~	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/import_export.rst~	Wed Feb 07 16:53:37 2018 +0100
@@ -9,7 +9,7 @@
 | Version 1: http://labfolder.rz-berlin.mpg.de:9091/api/v1
 | Version 2: https://labfolder.rz-berlin.mpg.de/api/v2/docs/development.html
 
-Version 2 is still under way.
+Version 2 is still in the development phase.
 
 Export
 ------
--- a/elog2labfolder/importing_from_elog.rst	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/importing_from_elog.rst	Wed Feb 07 16:53:37 2018 +0100
@@ -39,22 +39,27 @@
 
 	$ git clone https://github.molgen.mpg.de/weiher/elog2labfolder.git
 
-The script *elog2labfolder.py* is meant to be executed from remote, that is, not on the machine on which labfolder is running. A prerequisit is the python MySQLDB package because for a few methods the labfolder API cannot be used, instead, direct manipulation of the labfolder MySQL database is needed. The actual labfolder API is applied in the methodes collected in *myPythonAPIv1.py* and *myPythonAPIv2.py*. Mostly, API version 2 is used but adding text at the end of an entry can only be accomplished by using the version 1 API call. *getListOfAuthors.py* gives you a list of all authors in a raw ELOG export file.
+The script *elog2labfolder.py* is meant to be executed from remote, that is, not on the machine on which labfolder is running. A prerequisit is the python MySQLDB package because for a few methods the labfolder API cannot be used, instead, direct manipulation of the labfolder MySQL database is needed. The actual labfolder API is applied in the methodes collected in *myPythonAPIv1.py* and *myPythonAPIv2.py*. Mostly, API version 2 is used but adding text at the end of an entry can only be accomplished by using the version 1 API call. *getListOfAuthors.py* gives you a list of all authors that are mentioned in a raw ELOG export file.
 
-Alternatives to the manipulating the labfolder DB on MySQL level
-----------------------------------------------------------------
+Alternatives to manipulating the labfolder DB on MySQL level
+------------------------------------------------------------
 
 As mentioned previously: a few methods in the python API use a direct manipulation of the labfolder DB via MySQL queries. These methods are:
 
-* *createUserAccount(email, author, entryContent, verboseOutput, cursor, db)*: If an author of an ELOG logbook entry has not yet a labolder account this account is created on the fly by setting a default (encrypted) password. This password is irrelevant because labfolder checks the entered password with the one from the LDAP server. Note: when setting a password in the DB labfolder's LDAP authentication needs to be disabled (FEATURE_LDAP_AUTHENTICATION=false) and enabled again after the setting process is finished.
+* *createUserAccount(email, author, entryContent, verboseOutput, cursor, db)*: If an author of an ELOG logbook entry does not yet have a labolder account this account is created on the fly by setting a default (encrypted) password. This password is irrelevant because labfolder checks the entered password with the one from the LDAP server. Note: when setting a password in the DB labfolder's LDAP authentication needs to be disabled (FEATURE_LDAP_AUTHENTICATION=false) beforehand and enabled again after the setting process is finished.
 
 * *updateAuthor(userID, blockID, cursor, db)*: Update the author of an entry. With the script *elog2labfolder.py* an entry is created with the author that is the person whose labfolder credentials are used to get the login token. Via this method the true author can be set to the passed in *userID*.
 
-* *updateDateAndTime(date, blockID, cursor, db)*: Similar to *updateAuthor()* this method sets the creation and modification date to the creation time and date of the entry to be imported. This is necessary because otherwise creation and modification date are the time and date of the import of the entry.
+* *updateDateAndTime(date, blockID, cursor, db)*: Similar to *updateAuthor()* this method sets the creation and modification date to the creation time and date of the entry to be imported. This is necessary because otherwise creation and modification date in labfolder are the time and date when the import took place.
 
 The labfolder support suggested the following alternative involving using the labfolder API:
 
-* ... siehe E-Mail (gesendet) vom 15.12. ...
+* User account: A user account can be created via the API 2 endpoint ``/auth/signup``. The password will be an encrypted dummy password. In order for this to work the LDAP authentication must be turned off when this endpoint is called. After the account creation LDAP authentication should be turned on again. Once the true user of this account logs in labfolder will ignore the dummy password and check the entered password against the password stored in LDAP.
+
+* Author: To create a labfolder entry by using the original entry's author needs a special work-around. **First, make sure to prevent labfolder users from accessing labfolder for the time of the import.** Then, manually change all user passwords in the DB to the same (encrypted) password. Switch off the LDAP authentication and restart labolder. Now, import entry by entry and get a new login token for each new entry. It is only possible to get login tokens for all users because they all have the same known password. If the author of the entry to be imported does not exist yet in the DB you need to create an account via the API 2 endpoint ``/auth/signup``. Now you reopen the access to the labfolder instance and switch on LDAP again restarting labfolder afterwards. The users can login using their FHI credentials no matter the "universal" password in the DB. If LDAP authentication is not turned on the users could do a password recovery on the login screen and re-set their password to their liking.
+
+* Date and time: Since you cannot change creation and modification time stamp of an entry via the API you could instead create custom dates during the import of an entry. The original entry creation timestamp could be "Original entry creation" followed by the creation time and date of the import. All entries can be filtered and searched by the custom dates.
 
 
 
+
--- a/elog2labfolder/importing_from_elog.rst~	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/importing_from_elog.rst~	Wed Feb 07 16:53:37 2018 +0100
@@ -39,19 +39,29 @@
 
 	$ git clone https://github.molgen.mpg.de/weiher/elog2labfolder.git
 
-The script *elog2labfolder.py* is meant to be executed from remote, that is, not on the machine on which labfolder is running. A prerequisit is the python MySQLDB package because for a few methods the labfolder API cannot be used, instead, direct manipulation of the labfolder MySQL database is needed. The actual labfolder API is applied in the methodes collected in *myPythonAPIv1.py* and *myPythonAPIv2.py*. Mostly, API version 2 is used but adding text at the end of an entry can only be accomplished by using the version 1 API call. *getListOfAuthors.py* gives you a list of all authors in a raw ELOG export file.
+The script *elog2labfolder.py* is meant to be executed from remote, that is, not on the machine on which labfolder is running. A prerequisit is the python MySQLDB package because for a few methods the labfolder API cannot be used, instead, direct manipulation of the labfolder MySQL database is needed. The actual labfolder API is applied in the methodes collected in *myPythonAPIv1.py* and *myPythonAPIv2.py*. Mostly, API version 2 is used but adding text at the end of an entry can only be accomplished by using the version 1 API call. *getListOfAuthors.py* gives you a list of all authors that are mentioned in a raw ELOG export file.
 
-Alternatives to the manipulating the labfolder DB on MySQL level
-----------------------------------------------------------------
+Alternatives to manipulating the labfolder DB on MySQL level
+------------------------------------------------------------
 
 As mentioned previously: a few methods in the python API use a direct manipulation of the labfolder DB via MySQL queries. These methods are:
 
-* *createUserAccount(email, author, entryContent, verboseOutput, cursor, db)*: If an author of an ELOG logbook entry has not yet a labolder account this account is created on the fly by setting a default (encrypted) password. This password is irrelevant because labfolder checks the entered password with the one from the LDAP server. Note: when setting a password in the DB labfolder's LDAP authentication needs to be disabled (FEATURE_LDAP_AUTHENTICATION=false) and enabled again after the setting process is finished.
+* *createUserAccount(email, author, entryContent, verboseOutput, cursor, db)*: If an author of an ELOG logbook entry does not yet have a labolder account this account is created on the fly by setting a default (encrypted) password. This password is irrelevant because labfolder checks the entered password with the one from the LDAP server. Note: when setting a password in the DB labfolder's LDAP authentication needs to be disabled (FEATURE_LDAP_AUTHENTICATION=false) beforehand and enabled again after the setting process is finished.
 
 * *updateAuthor(userID, blockID, cursor, db)*: Update the author of an entry. With the script *elog2labfolder.py* an entry is created with the author that is the person whose labfolder credentials are used to get the login token. Via this method the true author can be set to the passed in *userID*.
 
-* *updateDateAndTime(date, blockID, cursor, db)*: Similar to *updateAuthor()* this method sets the creation and modification date to the creation time and date of the entry to be imported. This is necessary because otherwise creation and modification date are the time and date of the import of the entry.
+* *updateDateAndTime(date, blockID, cursor, db)*: Similar to *updateAuthor()* this method sets the creation and modification date to the creation time and date of the entry to be imported. This is necessary because otherwise creation and modification date in labfolder are the time and date when the import took place.
+
+The labfolder support suggested the following alternative involving using the labfolder API:
+
+* User account: A user account can be created via the API 2 endpoint ``/auth/signup``. The password will be an encrypted dummy password. In order for this to work the LDAP authentication must be turned off when this endpoint is called. After the account creation LDAP authentication should be turned on again. Once the true user of this account logs in labfolder will ignore the dummy password and check the entered password against the password stored in LDAP.
 
-The labfolder support
+* Author: To create a labfolder entry by using the original entry's author needs a special work-around. **First, make sure to prevent labfolder users from accessing labfolder for the time of the import.** Then, manually change all user passwords in the DB to the same (encrypted) password. Switch off the LDAP authentication and restart labolder. Now, import entry by entry and get a new login token for each new entry. It is only possible to get login tokens for all users because they all have the same known password. If the author of the entry to be imported does not exist yet in the DB you need to create an account via the API 2 endpoint ``/auth/signup``. Now you reopen the access to the labfolder instance and switch on LDAP again restarting labfolder afterwards. The users can login using their FHI credentials no matter the "universal" password in the DB. If LDAP authentication is not turned on the users could do a password recovery on the login screen and re-set their password to their liking.
+
+* Date and time: Since you cannot change creation and modification time stamp of an entry via the API you could instead create custom dates during the import
+
+creation time wird das Datum bleiben, an dem der Eintrag importiert wurde; beim Import wird aber ein custom date angelegt, das z.B. "Original-Erstellungsdatum" heißt und als Datum das Erstellungsdatum aus Elog enthält (alle Einträge sind dann auch nach diesem Datum filterbar und durchsuchbar)
 
 
+
+
--- a/elog2labfolder/index.rst	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/index.rst	Wed Feb 07 16:53:37 2018 +0100
@@ -11,19 +11,17 @@
    :caption: Contents:
 
    installation.rst
+   installation_cups.rst
    groups.rst
    import_export.rst
    importing_from_elog.rst
 
 ..
-	elog2labfolder.py
+	DONE: elog2labfolder.py
 
 	Installation von Cups
 
-	Funktion und Nutzung der labfolder-APIs
-
-	    Mit welcher API funktioniert was?
-	    Generell nicht möglich mit den APIs: Ändern der User-ID und des Timestamps
+	DONE: Funktion und Nutzung der labfolder-APIs: Mit welcher API funktioniert was? Generell nicht möglich mit den APIs: Ändern der User-ID und des Timestamps
 
 	Was sind die Probleme, die uns derzeit an der Umstellung hindern bzw. die uns langfristig gesehen skeptisch machen, ob Labfolder wirklich geeignet ist?
 
@@ -35,7 +33,7 @@
 	    Darstellung von Umlauten im elog-Export
 	    Darstellung von Text in PDFs im labfolder-PDF-Viewer (labfolder weiß Bescheid)
 
-	Informationen aus meiner E-Mail an Heinz vom 15.12. hinzufügen
+	DONE: Informationen aus meiner E-Mail an Heinz vom 15.12. hinzufügen
 
 	Versuch einer REST-API
 
--- a/elog2labfolder/index.rst~	Mon Feb 05 16:54:45 2018 +0100
+++ b/elog2labfolder/index.rst~	Wed Feb 07 16:53:37 2018 +0100
@@ -8,6 +8,7 @@
 
 .. toctree::
    :maxdepth: 2
+   :caption: Contents:
 
    installation.rst
    groups.rst
@@ -15,14 +16,11 @@
    importing_from_elog.rst
 
 ..
-	elog2labfolder.py
+	DONE: elog2labfolder.py
 
 	Installation von Cups
 
-	Funktion und Nutzung der labfolder-APIs
-
-	    Mit welcher API funktioniert was?
-	    Generell nicht möglich mit den APIs: Ändern der User-ID und des Timestamps
+	DONE: Funktion und Nutzung der labfolder-APIs: Mit welcher API funktioniert was? Generell nicht möglich mit den APIs: Ändern der User-ID und des Timestamps
 
 	Was sind die Probleme, die uns derzeit an der Umstellung hindern bzw. die uns langfristig gesehen skeptisch machen, ob Labfolder wirklich geeignet ist?
 
@@ -34,7 +32,7 @@
 	    Darstellung von Umlauten im elog-Export
 	    Darstellung von Text in PDFs im labfolder-PDF-Viewer (labfolder weiß Bescheid)
 
-	Informationen aus meiner E-Mail an Heinz vom 15.12. hinzufügen
+	DONE: Informationen aus meiner E-Mail an Heinz vom 15.12. hinzufügen
 
 	Versuch einer REST-API
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/elog2labfolder/installation_cups.rst	Wed Feb 07 16:53:37 2018 +0100
@@ -0,0 +1,150 @@
+Printing via CUPS and attaching files to labfolder logbooks
+===========================================================
+
+If you want to print a webpage as PDF and send it to onf of labfolder's logbooks you could create a CUPS printer for each logbook that uses the labfolder API to attach this PDF to a newly created entry. First, you need to install CUPS on the virtual machine that runs labfolder::
+
+	sudo apt-get install cups cups-client cups-bsd
+
+Next, you need to configure ``/etc/cups/cupsd.conf``. This is how it looks like on *lftest*::
+
+	# Sample configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
+	# complete description of this file.
+
+	# Log general information in error_log - change "warn" to "debug"
+	# for troubleshooting...
+	LogLevel debug
+
+	# Deactivate CUPS' internal logrotating, as we provide a better one, especially
+	# LogLevel debug2 gets usable now
+	MaxLogSize 0
+
+	# Administrator user group...
+	SystemGroup lpadmin
+	ServerAdmin weiher@fhi-berlin.mpg.de
+
+	HostNameLookups On
+	ServerAlias *
+
+	# Only listen for connections from the local machine.
+	Listen lftest.rz-berlin.mpg.de:631
+	Listen /var/run/cups/cups.sock
+
+	# Show shared printers on the local network.
+	Browsing Off
+	BrowseOrder allow,deny
+	BrowseAllow all
+	BrowseLocalProtocols CUPS dnssd
+	BrowseAddress @LOCAL
+
+	# Default authentication type, when authentication is required...
+	DefaultAuthType Basic
+
+	# Web interface setting...
+	WebInterface Yes
+
+	# Restrict access to the server...
+	<Location />
+	  Satisfy All
+	  Allow localhost
+	  Allow 141.14.*
+	  Allow 172.16.*
+	  Allow 192.*
+	  Allow all
+	  # Allow shared printing and remote administration...
+	  Order allow,deny
+	  Allow all
+	</Location>
+
+	# Restrict access to the admin pages...
+	<Location /admin>
+	  Order deny,allow
+	  Satisfy All
+	  AuthType Basic
+	  Require user @SYSTEM
+	  Deny All
+	  Allow localhost
+	  Allow 141.14.*
+	  Allow 172.16.*
+	</Location>
+
+	# Restrict access to configuration files...
+	<Location /admin/conf>
+	  Order deny,allow
+	  AuthType Default
+	  Require user @SYSTEM
+	  Satisfy All
+	  Require user root
+	  Deny All
+	  Allow 127.0.0.1
+	  Allow 141.14.*
+	  Allow 172.16.*
+	</Location>
+
+	# Set the default printer/job policies...
+	<Policy default>
+	  ... # probably as in the original
+	</Policy>
+
+Now, you need to create a file system that will hold all CUPS printers, For example, the printers belonging to the logbooks *FEL/operating* and *FEL/installation* could be put in ``/usr/local/labfolder/printers/FEL``. Copy the lplisten script from the git repository ``https://github.molgen.mpg.de/weiher/elog2labfolder.git`` to ``/usr/local/labfolder/printers/FEL/operating`` and to ``.../FEL/installation``. Also, create a pipe that redirects the printer input to the lplisten script::
+
+	/usr/local/labfolder/printers/FEL/operating$ mkfifo prnt
+
+Adapt rights and ownership of lplisten and prnt::
+
+	$ chmod 744 lplisten
+	$ chmod 666 prnt
+	$ chown lp:lpadmin lplisten prnt
+
+Add the labfolder user to the lpadmin group in /etc/group::
+
+	lpadmin:x:115:labfolder
+
+Now, create the CUPS printers via the web interface at ``http://lftest.rz-berlin.mpg.de:631/`` (as configured in cupsd.conf). For example, the *operating* printer points at ``FEL/operating/prnt``. The ready configured printer looks like this in the web interface:
+
+.. image:: _static/cups_print_operating.png
+   :width: 100 %
+   :align: center
+
+To prevent ``DENIED`` errors from apparmor install and set the following::
+
+	sudo apt-get install apparmor-utils apparmor-profiles
+	sudo aa-complain cupsd
+
+Restart the CUPS server::
+
+	$ service cupsd restart
+
+Start the lplisten script in the background::
+
+	/usr/local/labfolder/printers/FEL/operating$ ./lplisten &
+
+The last thing you need to do is to set up a printer *operating* on your local machine. In Ubuntu Gnome hit Alt+F2 keys and enter ``system-config-printer``. In this printer config interface add a new printer *operating* as follows:
+
+.. image:: _static/create_local_printer01.png
+   :width: 70 %
+   :align: center
+
+.. image:: _static/create_local_printer02.png   
+   :width: 70 %
+   :align: center
+
+.. image:: _static/create_local_printer03.png
+   :width: 70 %
+   :align: center
+
+.. image:: _static/create_local_printer04.png
+   :width: 70 %
+   :align: center
+
+.. image:: _static/create_local_printer05.png
+   :width: 70 %
+   :align: center
+
+.. image:: _static/create_local_printer06.png
+   :width: 70 %
+   :align: center
+
+.. image:: _static/create_local_printer07.png
+   :width: 70 %
+   :align: center
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/elog2labfolder/installation_cups.rst~	Wed Feb 07 16:53:37 2018 +0100
@@ -0,0 +1,132 @@
+Printing via CUPS and attaching files to labfolder logbooks
+===========================================================
+
+If you want to print a webpage as PDF and send it to onf of labfolder's logbooks you could create a CUPS printer for each logbook that uses the labfolder API to attach this PDF to a newly created entry. First, you need to install CUPS on the virtual machine that runs labfolder::
+
+	sudo apt-get install cups cups-client cups-bsd
+
+Next, you need to configure ``/etc/cups/cupsd.conf``. This is how it looks like on *lftest*::
+
+	# Sample configuration file for the CUPS scheduler.  See "man cupsd.conf" for a
+	# complete description of this file.
+
+	# Log general information in error_log - change "warn" to "debug"
+	# for troubleshooting...
+	LogLevel debug
+
+	# Deactivate CUPS' internal logrotating, as we provide a better one, especially
+	# LogLevel debug2 gets usable now
+	MaxLogSize 0
+
+	# Administrator user group...
+	SystemGroup lpadmin
+	ServerAdmin weiher@fhi-berlin.mpg.de
+
+	HostNameLookups On
+	ServerAlias *
+
+	# Only listen for connections from the local machine.
+	Listen lftest.rz-berlin.mpg.de:631
+	Listen /var/run/cups/cups.sock
+
+	# Show shared printers on the local network.
+	Browsing Off
+	BrowseOrder allow,deny
+	BrowseAllow all
+	BrowseLocalProtocols CUPS dnssd
+	BrowseAddress @LOCAL
+
+	# Default authentication type, when authentication is required...
+	DefaultAuthType Basic
+
+	# Web interface setting...
+	WebInterface Yes
+
+	# Restrict access to the server...
+	<Location />
+	  Satisfy All
+	  Allow localhost
+	  Allow 141.14.*
+	  Allow 172.16.*
+	  Allow 192.*
+	  Allow all
+	  # Allow shared printing and remote administration...
+	  Order allow,deny
+	  Allow all
+	</Location>
+
+	# Restrict access to the admin pages...
+	<Location /admin>
+	  Order deny,allow
+	  Satisfy All
+	  AuthType Basic
+	  Require user @SYSTEM
+	  Deny All
+	  Allow localhost
+	  Allow 141.14.*
+	  Allow 172.16.*
+	</Location>
+
+	# Restrict access to configuration files...
+	<Location /admin/conf>
+	  Order deny,allow
+	  AuthType Default
+	  Require user @SYSTEM
+	  Satisfy All
+	  Require user root
+	  Deny All
+	  Allow 127.0.0.1
+	  Allow 141.14.*
+	  Allow 172.16.*
+	</Location>
+
+	# Set the default printer/job policies...
+	<Policy default>
+	  ... # probably as in the original
+	</Policy>
+
+Now, you need to create a file system that will hold all CUPS printers, For example, the printers belonging to the logbooks *FEL/operating* and *FEL/installation* could be put in ``/usr/local/labfolder/printers/FEL``. Copy the lplisten script from the git repository ``https://github.molgen.mpg.de/weiher/elog2labfolder.git`` to ``/usr/local/labfolder/printers/FEL/operating`` and to ``.../FEL/installation``. Also, create a pipe that redirects the printer input to the lplisten script::
+
+	/usr/local/labfolder/printers/FEL/operating$ mkfifo prnt
+
+Adapt rights and ownership of lplisten and prnt::
+
+	$ chmod 744 lplisten
+	$ chmod 666 prnt
+	$ chown lp:lpadmin lplisten prnt
+
+Add the labfolder user to the lpadmin group in /etc/group::
+
+	lpadmin:x:115:labfolder
+
+Now, create the CUPS printers via the web interface at ``http://lftest.rz-berlin.mpg.de:631/`` (as configured in cupsd.conf). For example, the *operating* printer points at ``FEL/operating/prnt``. The ready configured printer looks like this in the web interface:
+
+.. image:: _static/cups_print_operating.png
+   :width: 100 %
+   :align: center
+
+To prevent ``DENIED`` errors from apparmor install and set the following::
+
+	sudo apt-get install apparmor-utils apparmor-profiles
+	sudo aa-complain cupsd
+
+Restart the CUPS server::
+
+	$ service cupsd restart
+
+Start the lplisten script in the background::
+
+	/usr/local/labfolder/printers/FEL/operating$ ./lplisten &
+
+The last thing you need to do is to set up a printer *operating* on your local machine. In Ubuntu Gnome hit Alt+F2 keys and enter ``system-config-printer``. In this printer config interface add a new printer *operating* as follows:
+
+.. image:: _static/create_local_printer01.png
+   :width: 70 %
+   :align: center
+
+
+
+
+
+
+