Kısıtlamalar ve API Farklılıkları
Genel API Farklılıkları
Bu liste, örnek kod bölümlerini kullanarak Aspose.Slides for Java ile Aspose.Slides for PHP via Java API’leri arasındaki belirli farklılıkları göstermektedir.
Kütüphane İçe Aktarma (Paket Karşılaştırmaları)
Aspose.Slides for Java
import com.aspose.slides.*;
Aspose.Slides for PHP via Java
require_once("Java.inc");
require_once("lib/aspose.slides.php");
use aspose\sldes;
use aspose\sldes\Presentation;
Yeni Sunum Oluşturma
Aspose.Slides for Java
Presentation presentation = new Presentation();
Aspose.Slides for PHP via Java
$presentation = new Presentation();
Enum’lar veya Sabitler
Aspose.Slides for Java
arc2.getLineFormat().setDashStyle(MsoLineDashStyle.SOLID);
Aspose.Slides for PHP via Java
$arc2->getLineFormat()->setDashStyle(slides\MsoLineDashStyle::SOLID);
Örnek
Aspose.Slides for Java
import com.aspose.slides.ISlide;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.ShapeType;
public class Test
{
public static void main(String[] args) throws Exception
{
// Sunum dosyasını temsil eden bir Presentation nesnesi oluşturur
Presentation pres = new Presentation();
try
{
// İlk slaytı alır
ISlide slide = pres.getSlides().get_Item(0);
// Tipi çizgi olarak ayarlanmış bir otomatik şekil ekler
slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
pres.save("NewPresentation_out.pptx", SaveFormat.Pptx);
}
finally
{
if (pres != null) pres.dispose();
}
}
}
Aspose.Slides for PHP via Java
<?php
require_once("Java.inc");
require_once("lib/aspose.slides.php");
use aspose\slides;
use aspose\slides\Presentation;
use aspose\slides\ShapeType;
use aspose\slides\SaveFormat;
$pres = new Presentation();
try
{
// İlk slaytı alır
$slide = $pres->getSlides()->get_Item(0);
// Tipi çizgi olarak ayarlanmış bir otomatik şekil ekler
$slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
$pres->save("NewPresentation_out.pptx", SaveFormat::Pptx);
}
finally
{
if (!java_is_null($pres)) $pres->dispose();
}
?>
Aspose.Slides for PHP via Java API’nin Aspose.Slides for Java API’ye Göre Diğer Kısıtlamaları
Aspose.Slides ad alanları ve kullandıkları java sınıfları, com.aspose.slides paketindeki aynı isimli Java sınıfları üzerine PhpJavaBridge tarafından oluşturulan sarmalayıcılardır.
1. Java Parametrelerinin ve Argümanlarının Sarılması
Geri döndürdükleri ve kabul ettikleri parametre ve argümanlar aynı ada sahip Java sınıfları üzerine sarmalayıcılardır. Yalnızca string ve sayısal tipler otomatik olarak dönüştürülür. Diziler, koleksiyonlar, baytlar ve boolean değerler dönüştürülmez.
Yaygın bir hata:
if ($node->isAssistant()) - wrong!
if (java_values($node->isAssistant())) - correct!
2. Java Sınıfını Uzatma ve instanceof Operatörü
Bir PHP sınıfından bir Java sınıfını genişletemezsiniz. Bir çözüm olarak, gerektiğinde bileşim (composition) uygulayabilirsiniz. instanceof operatörü yalnızca somut bir sınıf için çalışır. Bir sınıfın arabirimi veya üst sınıfı için çalışmaz.
3. Java Dizisi PHP Dizisi DEĞİLDİR
PHP içinde Java dizisi oluşturma:
$Array = new JavaClass("java.lang.reflect.Array");
$Integer = new JavaClass("java.lang.Integer");
$IntegerArray = $Array->newInstance($Integer, 2);
$IntegerArray[0] = 1;
$IntegerArray[1] = 0;
4. Java Dizi Uzunluğu
$data->length; - does NOT work
workaround
$Array = new JavaClass("java.lang.reflect.Array");
$Array->getLength($data);
5. Java Metodu Files.readAllBytes
$htmlBytes = Files->readAllBytes(Paths->get("embedOle.html")); - does NOT work
workaround
$file = new Java("java.io.File", "embedOle.html");
$Array = new JavaClass("java.lang.reflect.Array");
$Byte = new JavaClass("java.lang.Byte");
$htmlBytes = $Array->newInstance($Byte, $Array->getLength($file));
try {
$dis = new Java("java.io.DataInputStream", new Java("java.io.FileInputStream", $file));
$dis->readFully($htmlBytes);
} finally {
if (!java_is_null($dis)) $dis->close();
}
6. Java Metodu Files.write
Files->write(new File($path)->toPath(), $fontData, StandardOpenOption::CREATE); - does NOT work
workaround
$fstr = new Java("java.io.FileOutputStream", $path);
$Array = new java_class("java.lang.reflect.Array");
try {
$fstr->write($fontData, 0, $Array->getLength($fontData));
} finally {
$fstr->close();
}