How to save a .zabw file (compressed abiword)? - file

I want to save a file in .zabw format, I can only find answers on "how to open .zabw files".
I found out that .zabw is a native Abiword format. It is gzip compressed .abw (https://www.abisource.com/help/en-US/info/infoformats.html).
When saving a file in Abiword it shows an option in "Save file as type: Abiword(.abw, .zabw, abw.gz)" but the file is saved as file-name.abw and not file-name.zabw.
So when I use gzip to compress an .abw file does it become filename.abw.gz?
gzip file-name.abw
Are .zabw and abw.gz same?
Also, how can I obtain a file in .zabw format?

Abiword does not save files to .zabw, but it can read them. It can also read .abw.gz files, which is the same as an .zabw file (both are an XML file compressed in gzip format).
When you open an .zabw file, Abiword will read it, but if you modify and save that file, it will convert it into an uncompressed XML file and it won't change the filename, which is unfortunate (and that should be considered a bug). The help page recommends to only use .zabw to send the document over the internet, in other words, they tell you to compress the file to transfer it, but edit and work with an uncompressed file.

Related

Issues while recreating a TIFF file with 1D encoded data

This is regarding Fax Image compression. Initially I had an Uncompressed TIFF file , I wrote a code to extract its tags and the Image data present in it. Once I extracted the image data I performed 1D modefied Huffman coding/ Run length coding on it to get the encoded compressed data which I have stored in a textfile.
Now I am trying to recreate a TIFF file by modifying the tags appropriately to store the encoded compressed data. I have writen a code to recreate the tiff file and when I open the tiff file with an appliction to view all the tags, I find that all the tags I have put are correctly being read. However, when I use an online tiff viewer I do not get the correct image. I am confident that my encoded data is correct according to the Huffman Runlength tables. Anyone has any idea why I am not able to view the same Image with my compressed tiff file?
Note : I have not used any C libraries such as libtiff, The tiff file is just created by opening a tiff file and writing specific values at different offsets based on the tiff file stucture.
Thank you.
The Original Uncompressed file
The 1D encoded compressed file

How to read, manipulate and write .docx file in c

I am reading .docx file in a buffer and writing it to a new file successfully. (Using fread and fwrite in C) However now I want to enhance the scope of this project for the purpose of encryption. For which I want to be able to manipulate the buffer, then write it in new file.
Now one question might be, what manipulation do I need?
It could be anything really, like I'd write character 's' in buffer's location 15. Like below, and then write this new buffer (having character 's' at location 15, but the rest of the buffer remains unchanged) in a new .docx file.
buffer[15] = 's';
When I did this, the file that was created was corrupt. Since I am not fully aware of the structure of .docx file, this byte number 15 could be some potential identifier, or header, or any important information of .docx file needed for creating a non-corrupt file.
However, the things I know about .docx internal structure are:
It consists of XML files, zipped together.
The content that is written in .docx file, (for e.g. I have a file named test.docx, and it contains "Hello, how are you?") then the contents "Hello, how are you?" are stored in XML files.
There is a .rels (not confirm) extension file, among those files that are zipped together, that tells MS word about where the content is stored in file, i.e. where to look for content.
Apart from these 3 points I don't know much about structure of .docx file. Now considering all this, I want to be able to extract the contents of .docx file, from the XML files zipped together, read it (in C) in a buffer, change the buffer as I need it, and create a new file, with the new content that is present in the buffer.
Can someone guide me through this?
Also kindly mention, if I need to provide code, or any other essential details. Thanks in advance.
EDIT
PURPOSE OF ALL THIS:
I want to do all this for encryption. As by encrypting a file (using AES) the whole file will become unreadable, corrupt and everything inside will be changed from its place. When I decrypt that file, the file is unable to open. My guess is, as AES decryption algo does not know how to parse the contents recovered from decrypting the encrypted file, in to a new .docx file, thus it is unable to place the contents/structure properly in its place.
I have tried it. Original docx file was of 14 KB, encrypted docx file was of 14 KB as well as the decrypted docx file. But when I try to open the decrypted file, it says file is corrupt. Also I tried to check it in HEX editor. Decrypted file has just 00 bytes after exactly 30 Bytes.
DOCX files are based on OPC and OOXML. OPC is based on Zip. OOXML is based on XML. Therefore, you can use Zip and XML tools to operate on DOCX files. Beyond this, you'll have to be more specific about what you wish to do in order to receive better guidance.
Poking characters into random index locations in an XML file is operating at the wrong level of abstraction.

File extension detection mechanism

How Application will detect file extension?
I knew that every file has header that contains all the information related to that file.
My question is how application will use that header to detect that file?
Every file in file system associated some metadata with it for example, if i changed audio file's extension from .mp3 to .txt and then I opened that file with VLC but still VLC is able to play that file.
I found out that every file has header section which contains all the information related to that file.
I want to know how can I access that header?
Just to give you some more details:
A file extension is basically a way to indicate the format of the data (for example, TIFF image files have a format specification).
This way an application can check if the file it handles is of the right format.
Some applications don't check (or accept wrong) file formats and just tries to use them as the format it needs. So for your .mp3 file, the data in this file is not changed when you simply change the extension to .txt.
When VLC reads the .txt byte by byte and interprets it as a .mp3 it can just extract the correct music data from that file.
Now some files include a header for extra validation of what kind of format the data inside the file is. For example a unicode text file (should) include a BOM to indicate how the data in the file needs to be handled. This way an application can check whether the header tag matches the expected header and so it knows for sure that your '.txt` file actually contains data in the 'mp3' format.
Now there are quite some applications to read those header tags, but they are often specific for each format. This TIFF Tag Viewer for example (I used it in the past to check the header tags from my TIFF files).
So or you could just open your file with some kind of hex viewer and then look at the format specifications what every bytes means, or you search Google for a header viewer for the format you want to see them.

combine a binary file and a .txt file to a single file in python

I have a binary file (.bin) and a (.txt) file.
Using Python3, is there any way to combine these two files into one file (WITHOUT using any compressor tool if possible)?
And if I have to use a compressor, I want to do this with python.
As an example, I have 'file.txt' and 'file.bin', I want a library that gets these two and gives me one file, and also be able to un-merge the file.
Thank you
Just create a tar archive, a module that let's you accomplish this task is already bundled with Cpython, and it's called tarfile.
more examples here.
there are a lot of solutions for compressing!
gzip or zlib would allows compression and decompression and could be a solution for your problem.
Example of how to GZIP compress an existing file from [http://docs.python.org]:
import gzip
f_in = open('file.txt', 'rb')
f_out = gzip.open('file.txt.gz', 'wb')
f_out.writelines(f_in)
f_out.close()
f_in.close()
but also tarfile is a good solution!
Tar's the best solution to get binary file.
If you want the output to be a text, you can use base64 to transform binary file into a text data, then concatenate them into one file (using some unique string (or other technique) to mark the point they were merged).

converting file from .ods to xls file

I have a file in .ods format,
How to access that file in vb.net?,which connection string i have to use? and
how to convert that .ods file to .xls file? i used file.copy function,the extension of filename is changed to .xls,but the Save as type of filename won't change,any solution is there programatically.
which converter format,i have to use for converting .ods to .xls file?
The only practical way of converting a .ods file into a .xls file is to open it in a spreadsheet program that supports reading ODF files and writing to Microsoft's (proprietary) Excel format. All you have to do is open it and resave it in the desired format. OpenOffice can kinda do this well, but any spreadsheets with more than a little complexity (contains graphs, functions other than the basic ones like SUM, etc) can be fouled up. There is, however, a plug-in for MS Office for reading and writing ODF files, and it may even be built in now. There are also drop through converters, but I have never used them.
Very late but you can use this one:
http://www.gemboxsoftware.com/support/articles/convert-xls-xlsx-ods-csv-html-net

Resources