2011-06-04 51 views
2

有誰知道任何編輯器允許直觀地設計一個表格(由形式我並不意味着DFM或Delphi的形式,而是一個「紙質表單」,像那些你一些信息填寫預先印製的表格),併產生帕斯卡命令在打印機(或圖像)畫布中繪製該窗體?圖像/形式到Pascal/Delphi代碼轉換器?

我想要的是一種簡單的方式來直觀地繪製/設計此表單,僅由線條和文本組成,並將其轉換爲Pascal命令,在運行時將在Canvas中繪製該窗體(圖像或打印機),尊重原始佈局和比例,Canvas DPI在繪製的位置並不重要。

更新:也許我還不夠了解我需要什麼,以及爲什麼我需要說清楚。我開發了一個名爲TFreeBoleto的開源組件(freeboleto.sf.net)。它用於生成和打印銀行坯料(一種在巴西爲人員記帳的常用方法)。目前,該組件使用包含「billet」掩碼的TBitmap圖像和用於動態區域的TextOut方法(即:坯料編號,客戶名稱等)。在屏幕上查看時很好,但有些人抱怨說打印圖像的質量不好。該組件使用BltTBitmapAsDib過程來最大化打印質量,但有些人仍然認爲它不夠好。所以,我的想法是避免使用位圖圖像作爲表單佈局,並在畫布中直接繪製所有內容(包括表單和打印機)。 Check here for a sample of what a bank billet looks like

當然報表製作和/或FastReport中能夠解決這個問題,但它們不是免費的,所以我不能包括在該組件。我需要任何標準的Delphi安裝程序都能編譯的「本地」解決方案。

+0

這聽起來像你需要一個矢量圖形編輯器包與文本和行對象,可以編輯和查看和打印WMF,EMF或SVG文件。如果是這樣,那麼你的標題和問題的「代碼轉換器」部分是完全錯誤的。 – 2011-06-05 21:47:43

+0

沃倫,我的第一個願望是把所有東西都放在純粹的帕斯卡里。我可以直接在畫布上使用textout和其他「繪製」方法來實現,但這會非常耗時。這就是爲什麼我想到了一些可以讓我直觀地畫出需要的視覺編輯器,並將其轉換爲「pascal」命令的原因。 – WarmBooter 2011-06-06 00:07:50

+0

嗯。這是一個有趣的概念,但我真的認爲用元文件(WMF)加上一些x,y動態文本疊加,而不是代碼繪製圖片會更好。您可能有興趣瞭解MetaFiles實際上只是Win32 GDI調用的序列化形式。所以,如果你喜歡,它們是存儲在文件中的代碼(GDI API調用)。 – 2011-06-07 01:24:27

回答

3

你可能會得到你想要的快速報表報表設計器這是德爾福商業報告制度的內容。請記住,報告只是一個頁面。該頁面可以顯示在屏幕上或打印在打印機上。

您也可能會發現,像TRichView幫助你。

無論是在特定或不使用TRichView,我會考慮使用HTML做你想做什麼。我會使用HTML + CSS來執行屏幕和打印機佈局,這些也可以在網上查看。對於簡單的文本格式和文本框,我認爲即使是純粹的HTML和HTML表格也可能就足夠了。爲了直觀地設計簡單的文本頁面,使用Delphi應用程序,我會使用TRichView。

在這兩種情況下,你會創建文檔,而不是代碼。創建一個用於創建一個頁面,而無需使用任何文件系統代碼,將是非常困難的確,我不知道你真的會做的代碼,因爲你需要一個編譯器或解釋器的代碼轉換成的東西,你可以用。請澄清「創建代碼」的含義以及您希望使用哪種語法的語法。如果HTML是「代碼」定義中的代碼,那麼HTML可能是最適合您的問題的「代碼」。

+0

請檢查我的更新到原來的問題。我不認爲TRichView「足夠強大」足以處理我需要的格式。 – WarmBooter 2011-06-04 20:23:35

+0

即使編輯它,您的問題也變得非常難以回答。 – 2011-06-05 21:45:27

1

我做我的WPTools形式工作。它也是一種商業產品。核心是一個非常好的文字處理器和表單設計器。該引擎可以將文本和表單呈現給任何畫布(屏幕,打印機,也可以創建pdf),並且非常靈活。輸出主要是rtf和html。

我也看到在創造PASCAL代碼重繪形式沒有任何優勢。我認爲,您需要的是一個很好的所見即所得編輯器,它可以創建一個適合您需求的文檔。

+0

對不起,我忘了說我不能使用商業組件。 – WarmBooter 2011-06-04 20:24:33

-1

同比可以使用Adobe Acrobat(完整版)創建表單。

然後你可以使用免費的Acrobat Reader顯示和打印表格或應用程序中的其他COM對象。

我認爲這是最適合您的解決方案。

PS 包含在德爾福報告所有工具都是免費爲您設計形式,並且可以自由分發,如果用戶只預覽和打印已經設計報告。

這同樣適用於Adobe Acrobat(您可以發佈表單),但是您已經添加了需要在表單上打印表單和一些文本的形式。如果您使用報告,可能會更容易,但使用PDF也可以做到這一點。

大多數報表引擎不是開源的,但可以自由分發。有很多創建PDF的組件 - 付費(一次),免費的,以及開源。

PPS 我已經讀過你的第二次了。由於您使用TBitmap,因此您可以使用TextOut:您可以使用TMetafile。有許多元文件編輯器,可以自由分發元文件。

+0

這是一個編程解答網站。我相信OP在問如何編寫軟件,而不是如何安裝其他人的軟件。 – 2011-06-04 17:03:05

+0

我在其他帖子中找不到任何代碼,但是使用最合適的庫的建議。而且我認爲使用良好且經過驗證的庫代替從頭開始編寫代碼是不正確的。 – jordani 2011-06-04 23:09:05

+0

我記得讀過一些討論,人們說使用Metafile在100%的情況下並不像預期的那樣工作。看起來它有一些拉伸等問題,以及與某些打印機驅動程序不兼容。無論如何,我會重新檢查元文件信息,也許會做一些測試。 – WarmBooter 2011-06-05 00:25:02

1

退房的ReportBuilder @http://www.digital-metaphors.com/

這是德爾福商業報告工具 - 很長一段時間,質量非常高,用它包裝的所有本機Delphi源代碼。我現在正在使用它作爲一個重要的商業項目,我非常推薦它(我沒有爲他們工作。)我已經使用很多多年來的Delphi報告工具,這是最好的IMO。

RBuilder也有書面形式仿真看到了廣泛的支持: http://www.digital-metaphors.com/products/report_design/form_emulation.html

我還沒有與該功能的工作,但你可以下載一個全功能的演示和嘗試。

+0

請檢查我原來的問題的更新。我無法使用這個商業組件。 – WarmBooter 2011-06-04 20:25:17

+1

如果你提供一個全面包裝準備安裝/運行組件,即使它是開源的,你並不需要包括您用來構建組件的商業軟件包 - 這是所有的編譯和鏈接到您的可分配二進制 - 只要確保你不「運行時程序包」分配。 – Vector 2011-06-07 16:40:39