Giter Site home page Giter Site logo

Comments (6)

badalsarkar avatar badalsarkar commented on August 30, 2024

Hi @bennyboer ,
Can I work on this issue?

Thanks.

from thaw.

bennyboer avatar bennyboer commented on August 30, 2024

Hi there,

sure you can! Basically all cached stuff is under the user folder ~/.thaw that can be fetched from the CacheUtil class via a static method: getCacheRootDir().

For the CLI we use https://picocli.info/ which to my knowledge should have something like subcommands, but I am not that familar with it, so you can live it up as you wish! 😄

Let me know here or via e-mail if you need any help!

from thaw.

badalsarkar avatar badalsarkar commented on August 30, 2024

Hi,
Thanks for the instruction. 😄

I tried to run the application with the following command in Ubuntu
./gradlew :cli:run --args="--root-folder='../example/demo' --output='../example/demo/demo.pdf'"

But I am getting the following erro-

########################
### Thaw Project CLI ###
########################

### Configuration ###
Charset: 'UTF-8'

### Processing ###
Searching for Thaw files within folder at '/home/badal/Documents/codeProject/thaw/cli/../example/demo'...

Processing Thaw info file 'demo.tdi'...
Processing Thaw text file 'demo.tdt'...
Processing Thaw style file 'demo.tds'...
Oct. 14, 2020 10:57:52 P.M. org.apache.fontbox.ttf.CmapSubtable processSubtype14
WARNING: Format 14 cmap table is not supported and will be ignored
An exception occurred while trying to export the resulting document.
The exception message is: 'de.be.thaw.typeset.exception.TypeSettingException: Could not convert the document into the Knuth-Plass algorithm format'
de.be.thaw.export.exception.ExportException: de.be.thaw.typeset.exception.TypeSettingException: Could not convert the document into the Knuth-Plass algorithm format
        at de.be.thaw.export.pdf.PdfExporter.export(PdfExporter.java:109)
        at de.be.thaw.cli.CLI.call(CLI.java:236)
        at de.be.thaw.cli.CLI.call(CLI.java:36)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1853)
        at picocli.CommandLine.access$1100(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2255)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2249)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2213)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2080)
        at picocli.CommandLine.execute(CommandLine.java:1978)
        at de.be.thaw.cli.CLI.main(CLI.java:69)
Caused by: de.be.thaw.typeset.exception.TypeSettingException: Could not convert the document into the Knuth-Plass algorithm format
        at de.be.thaw.typeset.knuthplass.KnuthPlassTypeSetter.convertToParagraphs(KnuthPlassTypeSetter.java:177)
        at de.be.thaw.typeset.knuthplass.KnuthPlassTypeSetter.typesetWithConfig(KnuthPlassTypeSetter.java:89)
        at de.be.thaw.typeset.knuthplass.KnuthPlassTypeSetter.typeset(KnuthPlassTypeSetter.java:77)
        at de.be.thaw.export.pdf.PdfExporter.typeset(PdfExporter.java:219)
        at de.be.thaw.export.pdf.PdfExporter.export(PdfExporter.java:107)
        ... 10 more
Caused by: de.be.thaw.core.document.convert.exception.DocumentConversionException: de.be.thaw.export.exception.ExportException: Could not find font family 'Arial' in OS installed fonts. If on Windows make sure that the fonts were installed for all users for Thaw to be able to pick it up.
        at de.be.thaw.typeset.knuthplass.converter.context.ConversionContext.appendTextToParagraph(ConversionContext.java:198)
        at de.be.thaw.typeset.knuthplass.converter.KnuthPlassConverter.initializeTextualNode(KnuthPlassConverter.java:153)
        at de.be.thaw.typeset.knuthplass.converter.KnuthPlassConverter.initializeForNode(KnuthPlassConverter.java:118)
        at de.be.thaw.typeset.knuthplass.converter.KnuthPlassConverter.initializeForNode(KnuthPlassConverter.java:126)
        at de.be.thaw.typeset.knuthplass.converter.KnuthPlassConverter.initializeForNode(KnuthPlassConverter.java:126)
        at de.be.thaw.typeset.knuthplass.converter.KnuthPlassConverter.convert(KnuthPlassConverter.java:100)
        at de.be.thaw.typeset.knuthplass.KnuthPlassTypeSetter.convertToParagraphs(KnuthPlassTypeSetter.java:175)
        ... 14 more
Caused by: de.be.thaw.export.exception.ExportException: Could not find font family 'Arial' in OS installed fonts. If on Windows make sure that the fonts were installed for all users for Thaw to be able to pick it up.
        at de.be.thaw.export.pdf.util.ExportContext.lambda$getFontVariantLocatorForStyleValue$0(ExportContext.java:322)
        at java.base/java.util.Optional.orElseThrow(Optional.java:401)
        at de.be.thaw.export.pdf.util.ExportContext.getFontVariantLocatorForStyleValue(ExportContext.java:322)
        at de.be.thaw.export.pdf.util.ExportContext.getFontForNode(ExportContext.java:363)
        at de.be.thaw.export.pdf.PdfExporter$3.getSpaceWidth(PdfExporter.java:270)
        at de.be.thaw.typeset.knuthplass.converter.context.ConversionContext.appendTextToParagraph(ConversionContext.java:193)
        ... 20 more

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':cli:run'.
> Process 'command '/home/badal/.jabba/jdk/[email protected]/bin/java'' finished with non-zero exit value 4

Not sure if I need to do any additional set up.

from thaw.

bennyboer avatar bennyboer commented on August 30, 2024

Nothing wrong except for the font 😄
I have to admit that I have never run it on Linux so I hope it will work without problems.

It says:

Could not find font family 'Arial' in OS installed fonts. If on Windows make sure that the fonts were installed for all users for Thaw to be able to pick it up.

Since I was running the demo on Windows, I have set the font to Arial, so you have to find a font that is installed on your system or use another font (ending with *.ttf, since *.oft fonts are currently not supported). If you want to use an *.oft font you may just convert it to *.ttf since the only difference is how the glyphs are stored (Google "OTF to TTF online" for example).

However for Linux-Distributions Thaw will look into the following folders to find fonts:

/usr/share/fonts
/usr/local/share/fonts
~/.fonts

You can then update the file example/demo/demo.tds where you need to change all font-family properties to fonts that are known to your system (font-family, inline-code-font-family, line-number-font-family).

Alternatively you could just point those properties to a folder of font files using something like font-family: Roboto:url(/usr/share/fonts/roboto); (For example from Google fonts). You need to specify the name of the font family in front of url(...) since it will look for all fonts with name "Roboto Regular" (for normal style), "Roboto Bold" (for bold style), "Roboto Italic" (for italic style) and "Roboto Bold Italic" (for both bold and italic).

grafik

Hope it helps!

from thaw.

badalsarkar avatar badalsarkar commented on August 30, 2024

I changed the demo.tds file with Ubuntu font like below -

   font-family: Ubuntu:url(/usr/share/fonts/truetype/ubuntu/);
   inline-code-font-family: Ubuntu:url(usr/share/fonts/truetype/ubuntu/);

But I am getting the following error-

### Processing ###
Searching for Thaw files within folder at '/home/badal/Documents/codeProject/thaw/cli/../example/demo'...

Processing Thaw info file 'demo.tdi'...
Processing Thaw text file 'demo.tdt'...
Processing Thaw style file 'demo.tds'...
An exception occurred while trying to parse the provided style file at '/home/badal/Documents/codeProject/thaw/cli/../example/demo/demo.tds'.
The exception message is: 'de.be.thaw.style.parser.value.exception.StyleValueParseException: Could not resolve font file at 'usr/share/fonts/truetype/ubuntu/''

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':cli:run'.
> Process 'command '/home/badal/.jabba/jdk/[email protected]/bin/java'' finished with non-zero exit value 8

My directory has the following contents-

ubuntufont

It says, it can't resolve the font file. But the files are in the folder. Any idea what can be wrong?

I will also switch to Windows in the meantime and finish #62.

from thaw.

bennyboer avatar bennyboer commented on August 30, 2024

Hi there,

I tested now on Ubuntu as well and had to fix some Font-related stuff.

My current working demo.tds is:

document {
	font-family: DejaVu Serif;
	inline-code-font-family: Ubuntu Mono;

	font-size: 13pt;
	color: #222222;

    // Set the document page dimensions
	width: 210mm;
	height: 297mm;

	margin: 2cm 3cm;
}

page {
    footer: footer; // We want the sub-folder "footer" to be included as footer to all pages
}

title {
    font-family: Ubuntu;
    font-size: 48pt;
    text-align: center;
}

code {
	font-family: Ubuntu Mono;
	line-number-font-family: Ubuntu Mono;
}

h {
    font-family: Ubuntu;
    margin: 4mm 0 0 0;
    padding: 0;
}

table-cell.footer-table {
    border-width: 0.25mm 0 0 0; // Hide borders of the tables cells, except on the top

    // Font settings
    font-family: Ubuntu;
    font-size: 11pt;
}

table-cell.footer-table:column(1) {
    text-align: left;
}

table-cell.footer-table:column(*) {
    text-align: right;
}

table-cell.person-table {
	border-width: 0;
	font-size: 13pt;
}

table-cell.person-table:even-rows {
	background-color: rgb(0.98, 0.98, 0.98);
}

table-cell.person-table:row(1) {
	font-variant: bold;
	border-width: 0;
}

table-cell.person-table:cell(2, 1) {
	border-radius-top: 2mm;
}

table-cell.person-table:cell(2, *) {
	border-radius-right: 2mm;
}

table-cell.person-table:cell(*, 1) {
	border-radius-left: 2mm;
}

table-cell.person-table:cell(*, *) {
	border-radius-bottom: 2mm;
}

table-cell.person-table:column(1) {
	text-align: right;
	font-variant: italic;
}

I had to use DejaVu Serif for the document font-family because there is an unordered enumeration in the document that wants to use the asterisk operator character as item symbol, which Ubuntu does not have. Unfortunately there are some display problems with DejaVu Serif with uppercase letters. Probably should investigate that at some point 😄 .

grafik

You will have to install python and pygments as well (sudo apt-get install python3 python3-pygments) because the demo document uses syntax highlighting for code blocks.

Other than that it is working!

from thaw.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.