ProcessHTML.py creates the PDF handbooks for MuseScore. 

ProcessHTML is written and maintained by David Bolton.
http://davidbolton.info

**********************************

SET UP INSTRUCTIONS

Code is written for Python 2.6. The actual PDF creation 
has several dependencies that must be installed first. 
See http://www.htmltopdf.org/ for details.

A connection to the Internet is required since 
ProcessHTML.py fetches HTML and images files from the 
MuseScore website.


FURTHER SETUP AND PATCHES

If you get "AttributeError: 'NoneType' object has no 
attribute 'bands'" then see 
http://code.google.com/p/xhtml2pdf/issues/detail?id=65

To create the Japanese and Chinese handbooks see
http://code.google.com/p/xhtml2pdf/issues/detail?id=63

If you encounter
File "C:\Python26\lib\site-packages\reportlab\platypus\doctemplate.py", line 783, in handle_flowable
    raise LayoutError(ident)
reportlab.platypus.doctemplate.LayoutError
Comment line 783 in "C:\Python26\lib\site-packages\reportlab\platypus\doctemplate.py"


USE INSTRUCTIONS

To create PDF handbooks run ProcessHTML.py from the 
command line.

By default the script will create the English handbook. 
To create other language handbooks use the standard 
two-letter language code as follows:

> Python ProcessHTML.py -l fr

To create all the language handbooks at once use "all" 
as the command line argument.

> Python ProcessHTML.py all


*********************************

INSTRUCTIONS FOR ADDING NEW LANGUAGE

1. In chapterHeading() add the translation for 
   "Chapter". For example:

    elif language_code == 'nb':
        chapter = 'Kapittel'

2. In createHandbook() add the URL for the print 
   version of the handbook and the top-level URL for 
   the handbook on the website. Make sure the internal 
   URL using Unicode characters rather than escaped 
   charaters ('http://musescore.org/nb/håndbok' instead 
   of 'http://musescore.org/nb/h%C3%A5ndbok'). For 
   example

    elif language_code == 'nb':
        url = 'http://musescore.org/nb/print/book/export/html/2122'
        internal = 'http://musescore.org/nb/håndbok'

3. In main() the two-letter code the language_choices
   list. For example

    language_choices = ['all','en','nl','de','es','fi','fr','gl','it','ja','nb','ru','pl','pt-BR']


*********************************


CHANGE LOG

Version 1.7 (September 2010)
* Add danish
* fix for russian capitalization using decode("utf-8").lower().encode("utf-8") 

Version 1.6 (March 2010)
* Update style sheet for 0.9.6
* Fix for "/" link in English handbook
* Compatibility update: remove "www." from handbook links again (HTML from website changed)
* Add Hungarian, Catalan, Romanian, and Greek
* Work around lower case problem for a couple letters in Hungarian alphabet
* More flexibility with Chapter headings (numbers can go before the word chapter for Hungarian or right after without a space for Japanese)
* Update instructions in README file for adding new language

Version 1.5 (February 2010)
* Unix style command line options
* Fix: broken images
* Fix: removable of stylesheets (change in website revealed bug)
* Better handling of link checks

Version 1.4 (November 2009)
* Add sources and font directory to SVN
* Drop unimportant words (such as "a") from anchors to match URLs on website
* Repress pisa warnings unless verbos output requested 
* Repress information about external CSS unless versbose output requested
* Check whether URL's in handbook match language of handbook
* Use DejaVu font for all text (allows non-latin characters for Russian handbook)
* Ability to specify a font depending on the language (for example Japanese needs its own font)
* Add Russian, Japanese, Brazillian Portuguese, and Polish
* Compatibility update: add "www." back to handbook links (HTML from website changed)
* Add "./" to start of image src's so that OpenOffice.org can understand

Version 1.3 (August 2009):
* Compatibility update: remove "www." from handbook links (HTML from website changed)
* Update CSS for release of version 0.9.5 and to embed DejaVuSans font for Mac shortcut symbols
* Add Norwegian and wrote instructions for adding new languages
* Check for broken images
* Check for base and link tags before processing them

Version 1.2 (9 July 2009):
* Style sheet designed for pisa 3.0.31 (no longer designed for 3.0.27)
* Hides breadcrumb links
* When creating all handbooks, no longer open all the PDFs (to save memory)
* Create "files" directory if it doesn't already exit
* Does not download javascript files

Version 1.1 (17 April 2009):
* Compatibility updates for language dependent images (HTML from website changed)
* Compatibility updates for cover page and last page (HTML from website changed)
* Compatibility updates for page number (workaround for bug in pisa 3.0.31)
* Last version to have a style sheet designed for 3.0.27

Version 1.0 (12 March 2009):
* Added Italian handbook (it)
* Added Finnish handbook (fi)
* Compatibility updates for internal links (HTML from website changed)
* Show warning for URLs that contain the text "freelinking"
* Add UTF-8 comment to start of script (fixes URL encoding problems with accented "e" in French handbook)
* Made "missing" the default image parameter
* Added new PDF parameters: pdf, nopdf, openpdf (openpdf is default)

Version 0.9 (29 January 2009):
* Made screen output less verbose by default
* Percent escaped id attributes (necessary for PDF links to work with non-ASCII characters)
* Removed base tag from all languages
* Added numbered chapter headings
* Updated English title page

Version 0.8 (11 January 2009):
* Compatibility updates for new release of pisa 3.0.29
* Compatibility updates for internal links (HTML from website changed)

Version 0.7 (1 January 2009):
* Add support for all handbook translations
* Code clean up and modularization
* Fix level-two headings and other improvements
* Preliminary support for command-line arguments

Version 0.5 (30 December 2008):
* Experimental version for English handbook only



