PDFTron - восстановление состояния
Кажется, что ошибка в PDFTrone - после добавления текстовой аннотации для выделенного текста - положение, масштаб и сброс масштаба. Это не критично для устройства с экраном / разрешением, но не очень хорошо для устройств с маленьким экраном. Потому что масштаб документа после этого будет установлен на 0,05 или аналогичное небольшое значение.
Поэтому может возникнуть вопрос - как обнаружить, что текстовая заметка была добавлена, и справиться с этой ситуацией? Я уверен, что это возможно, потому что, когда PDF повернут, предыдущий нормальный масштаб будет восстановлен.
PS Я декомпилировал библиотеку и знаю строку, где есть ошибка, но мой вопрос все еще актуален: file PDFViewCtrl
protected void onLayout(boolean var1, int var2, int var3, int var4, int var5) {
int var6 = var4 - var2;
int var7 = var5 - var3;
if(this.R != var6 || this.S != var7 || this.b == null || this.p || this.ay) {
boolean var8 = this.R != var6 || this.S != var7;
this.S = var7;
this.R = var6;
if(this.b != null && this.R > 0 && this.S > 0) {
this.cancelRendering();
this.ay = false;
OnSize(this.bq, this.R, this.S, this.R, false);
if(this.p) {
this.p = false;
var8 = true;
this.setPagePresentationMode(this.ba);
this.setPageViewMode(this.aZ);
this.scrollTo(0, 0);
this.aC = this.getZoom();
this.aO = this.getCurrentPage();
this.aN = this.aO;
if(this.aX != null) {
this.aX.onSetDoc();
}
}
if(var8) {
this.h.b();
}
this.b();
this.scrollTo(this.k(), this.l());
} else if(this.b == null) {
this.T = 0;
this.U = 0;
}
if(var1 && this.b != null && this.aB == 2) {
boolean var16 = !this.isFinishedRendering();
double var10 = this.getZoom();
this.cancelRendering();
this.aC = this.e();
double var12 = this.az * this.aC;
double var14 = this.aA * this.aC;
if(var10 < var12) {
this.setZoom(var12);
}
if(var10 > var14) {
// error here - will be set extremely small zoom
this.setZoom(var14);
}
if(var16) {
this.requestRendering();
}
}