Alfresco CAD (dxf dwg) preview support
Alfresco CAD, Alfresco DXF and Alfresco DWG Preview Support

Stanislav'dan Alfresco CAD (dxf ve dwg) önizleme desteği

Alfresco CAD, Alfresco DXF ve Alfresco DWG Önizleme Desteği

Selam! Son zamanlarda Alfresco Share 5.0'da CAD formatı (DXF, DWG) desteğini uygulama şansı buldum, böylece kullanıcılar mühendislik belgelerini önizleyebildi. Alfresco önizleyicisi nedir? Arkasında yatan ana konsept, tüm karmaşık biçimleri (doc, excel, txt, vb.) Tek bir dosyaya dönüştürmektir - PDF, daha sonra Alfresco önizleyicisi tarafından oluşturulabilir. Word / excel / diğer dönüşümü işlemek için OpenOffice kullanılır, DXF ve DWG'yi desteklemek için uygun bir CAD'den PDF'ye dönüştürücü bulmamız gerekir. Bunu yapmak için, mevcut dönüştürücülere bir göz atacağım, onları değerlendireceğim ve mühendislik çizimlerinin önizlemesini sağlamak için bunlardan birinin Alfresco'ya nasıl enjekte edileceğini göstereceğim. Bu çözüm, Windows ve Linux'ta Alfresco 5 (4. de iyi olmalı) üzerinde çalışacaktır.


Öncelikle Alfresco içerik önizleme yaşam döngüsünü göstermek istiyorum:

Bazı içerikler yüklendi, diyelim ki * .doc

Bir kullanıcı dosyayı ilk kez açar

Alfresco mime türünü okur

İçerik mime türü Alfresco kullanmak uygun dönüştürücü yapılandırmasını bulur

Bu yapılandırmada, doc'tan pdf'e dönüştürme (LibreOffice yolu) gerçekleştiren harici yazılıma giden bir yol vardır.

Doc'tan pdf'e dönüştürme LibreOffice kullanılarak gerçekleşir

Oluşturulan pdf'yi içerik deposuna depolayın ve belge varlığına bağlayın. Oluşturulan pdf depolandıktan sonra, dönüştürme ikinci kez gerçekleşmeyecektir (kullanıcı dosyayı bir kez daha açtığında).

Alfresco önizleyicisi (bu bir javascript bileşeni) başlatıldı ve sadece pdf yorumunu yükler

Çözmemiz gereken önemli bir an, CAD'den PDF'ye dönüştürücü sağlamaktır (6. adım). Bu tür dönüştürücü Alfresco içinde gönderilmez, sırayla tescilli olan yalnızca 3B taraf yazılımı mevcuttur. 3 CAD'den PDF'ye pazar liderleri dikkate alınmıştır:

Formtek yazılımı. Alfresco eklentileri sayfasının altında "DWG" yazarsanız, çoğunlukla Formtek eklentilerine yönelik referansları bulacaksınız. Bulunan tüm modüller ücretsiz olarak sunulur, ancak sonunda hepsi Formtek EDM Modülünü gerektirir ve bunun tersine ödeme yapmak zorunludur. Bu modülün fiyatı bilinmiyor, bu projenin ekibiyle iletişime geçmeye çalıştım ama hala cevap bekliyorum.

AcmeCADConverter aracı (fiyatı 99 euro), yalnızca Windows sürümü (ekibi, onu çalıştırmak için Linux'ta wine kullanmayı öneriyor). Mevcut dönüştürücü iyi sonuçlar verdi, ancak ne yazık ki tüm dwg dosyaları dönüştürülemedi: bazı büyük dosyalar (5Mb'den fazla) bir dönüşüm sonucu olarak boş pdf verdi.

CAD'den PDF'ye dönüştürmeyi çözmek için en iyi çözümün bir QCAD kitaplığı olduğu, testler sırasında herhangi bir karmaşıklıktaki (> 10Mb) dwg dosyalarını dönüştürebildiği, Windows ve Linux'ta çalıştırılabileceği ve fiyatının sadece 39 euro olduğu ortaya çıktı.

Alfresco içinde dwg'den pdf'ye dönüşüm sağlamak için Alfresco uygulama sınıfı yol sınıf yolunda bulunan yeni oluşturulan fasulye bağlamına bir Transformer eklememiz gerekir: alfresco / extension / some-context.xml:


<bean id = "transformer.dwg2pdf" 
    class = "org.alfresco.repo.content.transform.ProxyContentTransformer"
    parent = "baseContentTransformer">
    <property name = "worker">
        <ref bean = "transformer.worker.dwg2pdf" / >
    </property>
</bean>
Ve aynı bağlam dosyasına bir Çalışan:
<bean id = "transformer.worker.dwg2pdf"
    class = "org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
    <property name = " mimetypeService ">
        <ref bean =" mimetypeService "/>
    </property>
    <property name =" checkCommand ">
        <bean name = "transformer.dwg2pdf.checkCommand" class = "org.alfresco.util.exec.RuntimeExec">
            <property name = "commandsAndArguments">
                <map>
                    <entry key = "Linux. *">
                        <list>
                            <value> sh </value>
                            <value> -c </value>                           
                            <value> $ {dwg2pdf.root} / dwg2pdf -h </value>
                        </list> 
                    </entry>                
                    <entry key = "Windows. *">
                        <list>
                            <value> cmd </value> 
                            <value> / C </value>                                                      
                            <değer> cd $ {dwg2pdf.root} & amp; & amp; dwg2pdf -h </value>
                        </list>
                    </entry>
                </map>
            </property>
        </bean>
    </property>
    <property name = "transformCommand">
        <bean name = "transformer.dwg2pdf.Command" class = "org.alfresco.util.exec.RuntimeExec">
            <property name = "commandsAndArguments">
                <map>
                    <entry key = "Linux. *">
                        <list>
                            <value> sh </value>

                            <value> $ {dwg2pdf.root} / dwg2pdf -f -a -o $ {target} $ {source} </value>
                        </list> 
                    </entry>                        
                    <entry key = ". *">
                        <list>
                            < değer> cmd </value> 
                            <value> / C </value>                           
                            <value> cd $ {dwg2pdf.root} & amp; & amp; dwg2pdf -f -a -o $ {target} $ {kaynak} </value>
                        </list>
                    </entry>
                </map>
            </property>
            <

            </property>
        </bean>
    </property>
</bean>

İşçi yapılandırmasıyla ilgili birkaç not:


$ {dwg2pdf.root} alfresco-global.properties dosyasından alınmıştır, bu dosyanın bir parçası aşağıda gösterilmiştir

$ {target} $ {source} değerleri, bir dosya açıldığında ve bir dönüşüm tetiklendiğinde Alfresco tarafından otomatik olarak enjekte edilir

checkCommand, sistem başlangıcında çalıştırılan bir komuttur. Başarılı olursa, mevcut Çalışan, Alfresco kullanımı sırasında etkinleştirilir.

transformerCommand aslında bir içerik dönüşümü istendiğinde tetiklenen bir komuttur. Buraya QCAD (veya kullandığınız başka bir dönüştürücü) için uygun olan tüm parametreleri yazabilirsiniz. QCAD durumu için: –f dosya üzerine yazmaya zorlamaktır, –a sayfa düzenini ayarlamaktır, –o çıktı dosya adıdır

DXF Worker ve Transformer konfigürasyonu DWG konfigürasyonuna benzer, değiştirilmesi gereken tek şey bean ids transformer.dwg2pdf'den transformer.dxf2pdf'e ve transformer.worker.dwg2pdf'den transformer.worker.dxf2pdf'e.

Yapmamız gereken son şey, gelişmiş transformatörleri alfresco-global.properties'e eklemektir:

dwg2pdf.root = / opt / qcad 
content.transformer.dwg2pdf.priority = 50
content.transformer.dwg2pdf.extensions.dwg.pdf.supported = true 
content.transformer.dwg2pdf.extensions.dwg.pdf.priority = 50
content.transformer .dxf2pdf.priority = 50
content.transformer.dxf2pdf.extensions.dxf.pdf.supported = true 
content.transformer.dxf2pdf.extensions.dxf.pdf.priority = 50

Bununla ilgili birkaç not:

dwg2pdf.root, gelişmiş yay bağlamına enjekte edilen QCAD'e (Linux sürümü) giden yoldur

transformer.dwg2pdf, dönüştürücülere atıfta bulunmak için bir içerik anahtar sözcüğü ile ön eklenmiş trafo çekirdek kimliklerimizdir. Uzantılar anahtar sözcüğü, dwg veya dxf mime türüne sahip bir içerik bulunduğunda, Alfresco'nun bunu pdf'ye dönüştürmeye çalışacağı anlamına gelir.

İşte bu, Alfresco yeniden başlatıldıktan sonra CAD önizlemesi çalışmalıdır. Ve işte, Alfresco'nuzun üzerine yerleştirilebilecek bir kavanoz oluşturmak için Ant komut dosyasını içeren eksiksiz bir kaynak kodu .

içinde Alfresco
ACS 7 için güvenli anahtar oluşturma ve sertifika ayarlama
Alfresco 7.0 için Keystore Ayarlama