我們在縮放的監視器上使用Paperclips(SWT打印庫)時遇到問題,但我認爲這與框架和Eclipse環境無關。在Java和Eclipse框架中處理的縮放比例不同
讓我們看一個例子:
左是沒有調整(或100%)的打印,右邊是相同的打印開始與175%縮放比例在監視器上。我知道你在想什麼:顯示器及其分辨率/縮放應該對打印沒有影響。對,應該。
儘管這很令人傷心,但它並不是什麼大問題。但是出現了踢球者:上述印刷品是由作爲插件測試運行的JUnit測試用例生成的。如果我運行它們作爲常規單元測試都工作。
很顯然,在Eclipse環境中,當在OSGi上下文中啓動時,某些東西的工作方式不同,我試圖找出它是什麼(所以我可以阻止它)。
我認爲這是一個很好的謎題。
如果你需要什麼SWT類可能是一個暗示,我把範圍縮小到該文件ScalePrint.java
爲表(即,如果我從我的演示中刪除的ScalePrint
實例,正確顯示錶,標題是儘管如此,仍然錯誤)。
我可以確認僅在Eclipse 4.6中存在錯誤時,而不是4.5或3.7(這並不完全令人驚訝,因爲4.6是支持縮放所述第一版本)。如果我將-Dswt.autoScale=100
添加到VM選項以禁用縮放,則它也可以按預期工作。
我可以附加我的測試用例,但正如我所說,我真的不認爲它與回形針本身有任何關係。
那麼......在整個Eclipse框架啓動時,與在普通Java應用程序中運行相同的代碼相比,什麼會打破擴展?