Ver Mensaje Individual
  #7  
Antiguo 02-10-2024
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 72
Reputación: 7
dani36652 Va camino a la fama
Hola qué tal.
apenas voy ingresando al foro ya que no había tenido el tiempo de hacerlo y poder responder.

el motivo por el cual la previsualización de la impresión de una imagen se mira en negro viene desde tu función:

Código Delphi [-]
function GetUriFromFile(const FilePath: string): Jnet_Uri;
var
  FileObj: JFile;
begin
  // Crear un objeto JFile con la ruta del archivo
  FileObj := TJFile.JavaClass.init(StringToJString(FilePath));

  // Obtener la URI desde el archivo
  Result := TJnet_Uri.JavaClass.fromFile(FileObj);
end;

Ya que desde android 7 la forma de obtener el URI de un archivo se hace mediante algo llamado "FileProvider".

Si tienes Delphi Sydney a Athens (10.4-12) tu función quedaría así:

Nota: Recuerda que para usar esta nueva forma de obtener el uri tienes que:
Marcar la casilla de "Secure File Sharing" en "Project>Options>Application>Entitlement List

Código Delphi [-]
uses
  {$IFDEF ANDROID}
  Androidapi.JNI.Webkit, FMX.Dialogs.Android,
  Androidapi.JNI.Print, System.Messaging,
  fmx.Platform.Android, Androidapi.jni,
  fmx.helpers.android, Androidapi.Jni.app,
  Androidapi.Jni.GraphicsContentViewText, Androidapi.JniBridge,
  Androidapi.JNI.Os, Androidapi.Jni.Telephony,
  Androidapi.JNI.JavaTypes,Androidapi.Helpers,
  Androidapi.JNI.Widget,System.Permissions,
  Androidapi.Jni.Provider,Androidapi.Jni.Net,
  AndroidAPI.JNI.Support;
 {$ENDIF}

function GetUriFromFile(const FilePath: string): Jnet_Uri;
var
  FileObj: JFile;
begin
  // Crear un objeto JFile con la ruta del archivo
  FileObj := TJFile.JavaClass.init(StringToJString(FilePath));

  // Obtener la URI desde el archivo
  Result := TAndroidHelper.JFileToJURI(FileObj);
end;

Embarcadero creó esa función del TAndroidHelper para dicho propósito.

Finalmente lo que mencionas de la disponibilidad de tu impresora me suena más a las configuraciones de la misma y no a la implementación desde Delphi.

Saludos.
Responder Con Cita