header's structure of .7z files? - header

Looking up in net I could find a general overview of rar format structure.
http://www.rarlab.com/technote.htm
But what would I be glad to be informed is how 7z files are segmented block by block.
thanks.

Refer to the DOC/7zFormat.txt file in the source distribution (an updated version can be found in the official SDK: https://www.7-zip.org/sdk.html).
http://fileformats.archiveteam.org/wiki/7z
To get a better understanding of the file format, you can use hachoir-wx (needs installed wxPython) to navigate an archive to the bit level. It is available via pip. Their parser supports 7zip among lots of other file formats.

Related

Understanding PDFBox jar files

I am attempting to install PDFBox on my system in order to create PDF files, but am unsure which jar files I need. If I go to https://pdfbox.apache.org/download.cgi
I see command line tools as follows:
pdfbox-app (9.1MB)
preflight-app (9.2MB)
debugger-app (9.0MB)
I also see "Libraries of each subproject" as follows:
pdfbox (2.6MB)
fontbox (1.6MB)
preflight (248KB)
xmpbox (132KB)
pdfbox-tools (77KB)
pdfbox-debugger (245KB)
What is meant by "each subproject"? Is it talking about the command line tools or something different?
I am planning to use java from the command line rather than in an IDE. Does this mean that I just need the Command line tools or do I need the "Libraries of each Subproject" as well? What does the "-app" indicated in the command line tools vs the related libraries?
Is there a page on apache.org that mentions the differences between all of these?
To create PDF files should I be using the preflight and debugger files as well or are those optional?
Summarizing the comments: you want to create a PDF from scratch and access your development over ssh so you can't use an IDE and have to use javac. For that you could use pdfbox-app jar file, but this would be huge. Instead, use the pdfbox, fontbox and commons-log jar files. See also here for additional dependencies if you want to do more advanced stuff (read / render (= convert to image) / decrypt / sign).

Source Code missing in Cincom VIsualWorks 7.9.1 in Windows 8

I am running Cincom VisualWorks version 7.9.1 in Windows 8. When I open the class browser and view a library class, it fails to display the source, instead displaying an error comment like this:
" ***This is decompiled code.***
This may reflect a problem with the configuration of your image and its sources and changes files.
Please refer to the documentation and the settings tool for help in setting up the proper source
code files."
I have confirmed that the home path is pointing to the correct directory. How can I fix this?
The answer to this question depends on what code you're looking at. In VisualWorks, source code can be stored in a number of different places. For classes that are present in a clean VisualWorks image with no other code loaded, the source is in a file called visual.sou found in the image directory of the installation directory. As you mentioned, you need to make sure the home path is pointing to the correct directory. It doesn't point at the image directory itself but the directory above - for example, it would be C:\Program Files (x86)\Cincom\vw7.9.1 not C:\Program Files (x86)\Cincom\vw7.9.1\image.
For parcels you loaded, the source code is in a .pst file associated with the parcel. For any code you load from Store or write yourself, the source is in a .cha file in the same directory as your .im file and with the same name. If your image is visual.im then your code is stored in visual.cha.
You need to be very careful about the versions of the files you use. The visual.im file is tightly coupled to the visual.sou file and contains offsets into the .sou file. If you're using a visual.im from another version of VisualWorks, those offsets into the .sou file may not be correct and may produce this problem.
I hope this helps.

docx4j: help converting docx to PDF

My goal is to take an existing .docx file and convert it, from a Linux command-line, to PDF using docx4j (http://www.docx4java.orghttp://www.docx4java.org). The "getting started" guide (http://www.docx4java.org/svn/docx4j/trunk/docx4j/docs/Docx4j_GettingStarted.html) refers to a samples directory that isn't actually included in the latest (2.8.1) package. Regardless, I located the samples directory in their SVN browser, created a 'samples/' subdirectory in my docx4j folder containing all the .jar files, and downloaded the CreatePdf.java file into the samples directory. Then I tried running:
java -cp docx4j-2.8.1.jar:log4j-1.2.15.jar org.docx4j.samples.CreatePdf my-file.docx
And I get the error:
Error: Could not find or load main class samples.org.docx4j.samples.CreatePdf
Any help would be greatly appreciated.
The samples are included in 2.8.1. Nothing has changed there, except the name of the sample, which is now ConvertOutPDF
Please try that instead.
btw, the SVN repository has been superseded since May. See docx4j-from-github-in-eclipse

What is the difference between 7zip's 7z.sfx and 7zsd.sfx?

I can't figure out what the difference is between the 7z.sfx file available with 7zip and the downloadable 7zsd.sfx from the developer's site, which is not bundled with 7zip. The 7z.sfx appears not to honor my request to include the config.txt file I created for it, but the 7zsd.sfx inclusion method works perfectly.
7zip comes with 7z.sfx bundled. The application history.txt in the program files directory shows that 7zsd.sfx used to be bundled with 7zip back in 2005. 7z.sfx is referred to as "uncompressed SFX" in the history.txt file as well.
This is the config used:
;!#Install#!UTF-8!
InstallPath="C:\\ProgramData\\IT"
GUIMode="2"
;!#InstallEnd#!
This is the syntax I'm using and the responding behavior:
C:\Users\<me>\Desktop\Updater\Recorder>copy /b 7z.sfx + config.txt + "RecorderVer0.0.0.4".7z "RecorderVer0.0.0.4".exe
7z.sfx
config.txt
RecorderVer0.0.0.4.7z
1 file(s) copied.
The same response occurs with the use of 7zsd.sfx indicating that indeed the config file included is being utilized. However, when executing the 7z.sfx created RecorderVer0.0.0.4".exe the prompt for where to install the contents of the 7z archive is prompted for. Using the 7zsd.sfx created RecorderVer0.0.0.4.exe version directs files to the config set location without any prompting as desired.
To my knowledge 7z.sfx is not downloadable via the developer's site, but I may be wrong. His official page is no longer available, but the information provided from the Internet Archive should be adequate.
I had this previously posted as a comment to my own question.
I found the answer to my question in 7-Zip documentation of all places! :) Looks like there are a total of 4 sfx modules and these are the differences:
SFX_Module : Description
7z.sfx : Windows version.
7zCon.sfx : Console version.
7zS.sfx : Windows version for installers.
7zSD.sfx : Windows version for installers (uses MSVCRT.dll).
Source: http://sevenzip.sourceforge.jp/chm/cmdline/switches/sfx.htm
Acquiring the 7zS.sfx and/or 7zSD.sfx stuffs is easy:
The installers are on the official download page. Just look for keyword 7-Zip Extra. Version 9.20 for example is https://www.7-zip.org/a/7z920_extra.7z
Just in case anybody stumbles across this post looking for the 7zS.sfx and 7zSD.sfx, you can find the 7z_extra files for the (currently) latest version at http://sourceforge.net/projects/sevenzip/files/7-Zip/9.22/7z922_extra.7z/download.
I was also looking for the other sfx modules and managed to find them in the related LZMA SDK archive on the actual 7-zip website:
https://www.7-zip.org/sdk.html
Download the latest version of the LZMA SDK and look in the bin folder.

Visual Basic Edit Tar Archive

Is it possible for vb to extract files from tar(and put them back)? I found this but it says that
Dim tar As New ChilkatTar <<<< ChilkatTar does not exist
I am trying to edit one xml file(which is not compressed) but if i do that with notepad, the tar becomes corrupt
ChilkatTar is a commercial component that you'd need to purchase, you can find it here:
7-zip supports unpacking and packing TAR files and is free so you could probably execute the command line version of it from your app to do the packing/unpacking.
It is also open-source, so you might even be able to copy the source into a library to use from your own application if you prefer, assuming that its license is compatible with your needs.