Skip to content

Instantly share code, notes, and snippets.

@blip2
Last active July 27, 2023 14:59
Show Gist options
  • Save blip2/68c3bf3809a9f13051251789edf1595b to your computer and use it in GitHub Desktop.
Save blip2/68c3bf3809a9f13051251789edf1595b to your computer and use it in GitHub Desktop.
Bluebeam .bax Editing
# Updated to work with python3 and use codecs rather than binascii
hex_string = "789cad534d6fda4010fd2b2bf710a38a9dddb5f1578d23c041899a3411384d2a94c3621670e5afae9700fdf55d9ba6a2520f39d4960f33f33cf366de4c18423c3209228822b9419064856810652859f7e02681a91422110735e1795eed14c473735d952a401db03fab0a5e6a78ad3e21a5617d9e679b32c8c55a3b0a2e375919586d30cf4ad1df8a6cb35501b5b0d7fad22aaf64f081744f0f66f1628007a8fd2c86a94d998d3c1f3b03c7755f6072bb608e873dc7f7913d1860cb755dc4988d2de6b9c8d2409b11ffcce332ccb4e7051251d4e371755850dfc77e1b6336c136711073759e2ea143b1e7b6656eafe0be16e548ca6a0f89b91425deee9a461c7b309182abac2a63ae8419078c508f5036203e7198f791920b422e74171333bc3c14397a15b2d1e8a14131312ea37059ad8e4807ca2638acf9d0d82a550700fbfd1e6b1b5772034dba1505076df6575c71d07f8281b419a47ae6a254c9b11643a31d346c55919f62a3879baf6fb5c6f94e2c052f1ee2e94cbcee5a922e26989113b4a9453a34f4603425d4a863aeb37572fe6f358d53a77f75b9b7ba26b50a3e1c3afa51589fb3e8af7991e5c77332ff2ed5819beca7085aae4634e6326b1447f39aa702f591a62e79aad03ecb73b414488a1fbb4c8a55087514422b44d483f96ef9ddfcbdd63df87267de5f3d3d4f9fafef1ee7d7df3ec78fd71d44e989ff3902988954bd6b8d2627bd1af3bdd47a3045364c1654df217d81f15c1fe6136230d76fab3a8c2bb912328ae0ee6cf728610e256fbb1745bf00286526b0"
import zlib
from codecs import encode, decode
hex_data= decode(hex_string, "hex")
markup = zlib.decompress(hex_data).decode()
print(markup)
# <</DA(0 0 1 rg /Times 12 Tf)/IT/FreeTextCallout/DS(font: Times-Roman 12pt; text-align:left; margin:3pt; line-height:13.8pt; color:#000000)/RD[5.5 5.5 32.14124 89.65677]/CL[268.8699 455.3777 224.3287 389.4209 224.3287 372.2209]/TempBBox[199.9287 240.406 275.3699 461.8777]/LE/OpenArrow/T(ben.hussey)/CreationDate(D:20180125090628+10'00')/RC(<?xml version="1.0"?><body xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:contentType="text/html" xfa:APIVersion="BluebeamPDFRevu:2017.0.20" xfa:spec="2.2.0" style="font:Times-Roman 12pt; text-align:left; margin:3pt; line-height:13.8pt; color:#000000" xmlns="http://www.w3.org/1999/xhtml"><p style="font-family:Times-Roman; line-height:13.8pt; font-size:12pt">Barista Space - extract will be required</p></body>)/Subj(Callout)/NM(OEWXFXHMUSHYKDUH)/Subtype/FreeText/Rect[199.9287 240.406 275.3699 461.8777]/Contents(Barista Space - extract will be required)/F 4/C[1 1 1]/BS<</W 2/S/S/Type/Border>>/M(D:20180125102610+10'00')>>
markup = markup.replace("extract", "lots of extract")
comp_data = zlib.compress(markup.encode())
print(encode(bytes(comp_data), "hex").decode())
# 789cad536d6fda3010fe2b56f6a141133edb09795b48554811d5dab58274ed84fac1040399f236c714d8af9f13d68949fbb04973e40f77f7e4eeb97bce6108f19549104114c90d82242b44832843c9ba0737094ca4108938a831cff36aa7209e9bebaa5401ea80fd5955f052c36bf501290debf33cdb94412ed6da5170b9c9cac06a8379568afe56649bad0aa885bdd6975679258377a43b3d98c58b011ea0f65a0c539b321b793e76068eebbec0f876c11c0f7b8eef237b30c096ebba88311b5bcc7391a5813623fe99c7659869cf0b24a2a847a3eab0a0be8ffd36c66c826de220e6ea3c5d428762cf6dcbdc5ec37d2dca2b29ab3d24e6529478bb6b1a71ecc1580aaeb2aa8cb912661c30423d42d980f8c461de7b4a2e08b9d05d8ccdf0f250e4e855c846a38706c5c4b88cc265b53a221d289be0b0e64363ab541d00ecf77bac6d5cc90d34e956141cb4d95f71c541ff0906d26690ea998b5225c75a0c8d76d0b055457e8a5d3ddc7c7eab35ca77622978f1104f66e275d7927431c18c9ca04d2dd2a1a107a329a1461d739dad93f37fab699c3afdadcbbdd535a955f0e1d0d18fc2fa9c457fcd8b2c3f9e93f973a90edc64df45d07235a2119759a3389ad73c15a88ff24a35a85a23dd82e4a942fb2ccfd1522029beed32295621d45108ad20510fe6bbe557f3e77af7e0d39d797ffdf43c799ede3dcea75f3ec68fd30ea2f4e47f3d06988954fdd53a8d4fba35e6bf52ecc104d9305e50fd2ee90b8ce661084f88c15c7fed16c0a8922b21a308eece769112e650f2b68b51f40374dd2c5e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment