Erster Commit: nativer Linux-Port aus macOS-Bytecode
Läuft die Voice Acoustic VA-Remotecontrol (AllDSP AllControl) nativ unter Linux auf echtem wxGTK 3.0 — ohne Wine und ohne dekompilierten App-Code. Ausgeführt wird das unveränderte Python-2.7-Bytecode aus dem macOS-.app; C-Extensions (wxGTK/numpy/ scipy/PortAudio) kommen nativ aus Debian stretch. Enthält: va/ (Original-.pyc + pure-Python-Libs + Assets + launch.py mit den drei Linux-Fixes), Dockerfile/run.sh/entrypoint.sh, reference/ (dekompilierter Quellcode zum Debuggen) und README/STATUS. img.cache (378 MB, regenerierbar) ist per .gitignore ausgeschlossen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
from fpdf import *
|
||||
|
||||
class PDF(FPDF):
|
||||
#Load data
|
||||
def load_data(self, name):
|
||||
#Read file lines
|
||||
data=[]
|
||||
for line in file(name):
|
||||
data += [line[:-1].split(';')]
|
||||
return data
|
||||
|
||||
#Simple table
|
||||
def basic_table(self,header,data):
|
||||
#Header
|
||||
for col in header:
|
||||
self.cell(40,7,col,1)
|
||||
self.ln()
|
||||
#Data
|
||||
for row in data:
|
||||
for col in row:
|
||||
self.cell(40,6,col,1)
|
||||
self.ln()
|
||||
|
||||
#Better table
|
||||
def improved_table(self,header,data):
|
||||
#Column widths
|
||||
w=[40,35,40,45]
|
||||
#Header
|
||||
for i in range(0,len(header)):
|
||||
self.cell(w[i],7,header[i],1,0,'C')
|
||||
self.ln()
|
||||
#Data
|
||||
for row in data:
|
||||
self.cell(w[0],6,row[0],'LR')
|
||||
self.cell(w[1],6,row[1],'LR')
|
||||
self.cell(w[2],6,row[2],'LR',0,'R')
|
||||
self.cell(w[3],6,row[3],'LR',0,'R')
|
||||
self.ln()
|
||||
#Closure line
|
||||
self.cell(sum(w),0,'','T')
|
||||
|
||||
#Colored table
|
||||
def fancy_table(self,header,data):
|
||||
#Colors, line width and bold font
|
||||
self.set_fill_color(255,0,0)
|
||||
self.set_text_color(255)
|
||||
self.set_draw_color(128,0,0)
|
||||
self.set_line_width(.3)
|
||||
self.set_font('','B')
|
||||
#Header
|
||||
w=[40,35,40,45]
|
||||
for i in range(0,len(header)):
|
||||
self.cell(w[i],7,header[i],1,0,'C',1)
|
||||
self.ln()
|
||||
#Color and font restoration
|
||||
self.set_fill_color(224,235,255)
|
||||
self.set_text_color(0)
|
||||
self.set_font('')
|
||||
#Data
|
||||
fill=0
|
||||
for row in data:
|
||||
self.cell(w[0],6,row[0],'LR',0,'L',fill)
|
||||
self.cell(w[1],6,row[1],'LR',0,'L',fill)
|
||||
self.cell(w[2],6,row[2],'LR',0,'R',fill)
|
||||
self.cell(w[3],6,row[3],'LR',0,'R',fill)
|
||||
self.ln()
|
||||
fill=not fill
|
||||
self.cell(sum(w),0,'','T')
|
||||
|
||||
pdf=PDF()
|
||||
#Column titles
|
||||
header=['Country','Capital','Area (sq km)','Pop. (thousands)']
|
||||
#Data loading
|
||||
data=pdf.load_data('countries.txt')
|
||||
pdf.set_font('Arial','',14)
|
||||
pdf.add_page()
|
||||
pdf.basic_table(header,data)
|
||||
pdf.add_page()
|
||||
pdf.improved_table(header,data)
|
||||
pdf.add_page()
|
||||
pdf.fancy_table(header,data)
|
||||
pdf.output('tuto5.pdf','F')
|
||||
Reference in New Issue
Block a user